self-review 2026-08-15: plumb the five fan-effect gauges to durable storage
engram_act_stats_json emits 27 keys; emit_heartbeat forwarded 22. The five dropped were the five newest - the degree-correction instruments added 2026-08-11 - so the one subsystem with no track record was also the only one with no durable record. The 08-10 review fixed exactly this for hebb_cands/hebb_cand_max/hebb_mass/ hebb_edges and left the rule in a comment right above the gap: an instrument that is computed but not plumbed is not an instrument, it is a local variable. The rule was then not applied to the next thing added. Plumbing is a checklist item for every new gauge, not a one-time fix. First heartbeat after the change already earned it: fan_hits 284 of fan_steps 289 (98.3% of traversal steps binding) with fan_mean 0.5198 against fan_min 0.5 - the degree correction is sitting at its floor on nearly every step, which is a constant tax rather than a correction. That was invisible before today.
This commit is contained in:
+33
-1
@@ -451,6 +451,38 @@ fn emit_heartbeat() -> Void {
|
||||
let hebb_mass: String = if str_eq(hebb_mass_raw, "") { "-1" } else { hebb_mass_raw }
|
||||
let hebb_edges_raw: String = json_get(act_stats, "hebb_edges")
|
||||
let hebb_edges: String = if str_eq(hebb_edges_raw, "") { "-1" } else { hebb_edges_raw }
|
||||
// Fan-effect gauges (2026-08-15 self-review). Same defect as the block
|
||||
// directly above, one release later: engram_act_stats_json emits 27 keys,
|
||||
// this function forwarded 22. The five it dropped are the five NEWEST —
|
||||
// the degree-correction instruments added 2026-08-11 — so the one
|
||||
// subsystem with no track record is also the only one with no durable
|
||||
// record. The 08-10 comment above states the rule it was written to fix
|
||||
// ("an instrument that is computed but not plumbed to durable storage is
|
||||
// not an instrument, it is a local variable"), and the rule was then not
|
||||
// applied to the next thing added. Plumbing is not a one-time fix; it is
|
||||
// a checklist item for every new gauge.
|
||||
// fan_mean — mean degree correction applied on the last activation.
|
||||
// Drifting toward 0 ⇒ hub nodes are being damped into
|
||||
// irrelevance; toward 1 ⇒ the correction is doing nothing.
|
||||
// fan_min — the strongest single correction applied.
|
||||
// fan_hits — how many traversal steps the correction actually bound on.
|
||||
// 0 with fan_steps > 0 ⇒ the mechanism is inert.
|
||||
// fan_steps — traversal steps taken (denominator of fan_mean). Also the
|
||||
// only durable measure of how far activation is spreading.
|
||||
// fan_dref — reference degree the correction normalises against.
|
||||
// fan_hits/fan_steps together answer the question hebb_cands/hebb_cand_max
|
||||
// answers for consolidation: is this quiet because nothing is happening,
|
||||
// or because a threshold is wrong? Without both, the two look identical.
|
||||
let fan_mean_raw: String = json_get(act_stats, "fan_mean")
|
||||
let fan_mean: String = if str_eq(fan_mean_raw, "") { "-1" } else { fan_mean_raw }
|
||||
let fan_min_raw: String = json_get(act_stats, "fan_min")
|
||||
let fan_min: String = if str_eq(fan_min_raw, "") { "-1" } else { fan_min_raw }
|
||||
let fan_hits_raw: String = json_get(act_stats, "fan_hits")
|
||||
let fan_hits: String = if str_eq(fan_hits_raw, "") { "-1" } else { fan_hits_raw }
|
||||
let fan_steps_raw: String = json_get(act_stats, "fan_steps")
|
||||
let fan_steps: String = if str_eq(fan_steps_raw, "") { "-1" } else { fan_steps_raw }
|
||||
let fan_dref_raw: String = json_get(act_stats, "fan_dref")
|
||||
let fan_dref: String = if str_eq(fan_dref_raw, "") { "-1" } else { fan_dref_raw }
|
||||
// Consolidation write-back gauges (2026-08-07 self-review). hebb_links
|
||||
// counts what this process LEARNED; these three count what SURVIVES it.
|
||||
// The distinction is the whole finding: 1,198 links formed, 0 persisted,
|
||||
@@ -564,7 +596,7 @@ fn emit_heartbeat() -> Void {
|
||||
let dmg_scan: String = if str_eq(dmg_scan_raw, "") { "-1" } else { dmg_scan_raw }
|
||||
let dmg_ts_raw: String = state_get("soul.txt_census_ts")
|
||||
let dmg_age: Int = if str_eq(dmg_ts_raw, "") { 0 - 1 } else { ts - str_to_int(dmg_ts_raw) }
|
||||
let payload: String = "{\"event\":\"heartbeat\",\"pulse\":" + pulse + ",\"tick\":" + pulse + ",\"boot\":" + boot + ",\"idle\":" + idle + ",\"idle_ms\":" + int_to_str(idle_ms) + ",\"node_count\":" + int_to_str(nc) + ",\"edge_count\":" + int_to_str(ec) + ",\"node_delta\":" + int_to_str(node_delta) + ",\"edge_delta\":" + int_to_str(edge_delta) + ",\"wm_active\":" + int_to_str(wmc) + ",\"wm_delta\":" + int_to_str(wm_delta) + ",\"wm_saturated\":" + int_to_str(wm_sat) + ",\"wm_top0_streak\":" + int_to_str(t0streak) + ",\"wm_churn\":" + int_to_str(wm_churn) + ",\"wm_top0_wm\":" + wm_top0_wm + ",\"sync_added_total\":" + sat_str + ",\"sync_age_ms\":" + int_to_str(sync_age) + ",\"wm_avg_weight\":" + wm_avg_str + ",\"wm_top\":" + wm_top + ",\"ts\":" + int_to_str(ts) + ",\"uptime_ms\":" + int_to_str(up_ms) + ",\"uptime\":\"" + up_human + "\",\"embed_ok\":" + int_to_str(emb_ok) + ",\"embed_backfilled\":" + bf_done + ",\"embed_count\":" + bf_total + ",\"embed_eligible\":" + embed_elig + ",\"wm_evicted\":" + act_evict + ",\"wm_evicted_delta\":" + int_to_str(evict_delta) + ",\"evict_floor\":" + ev_floor + ",\"evict_cap\":" + ev_cap + ",\"evict_bll\":" + ev_bll + ",\"breakthroughs\":" + act_bt + ",\"breakthroughs_delta\":" + int_to_str(bt_delta) + ",\"auto_term_streak\":" + int_to_str(hb_ats) + ",\"auto_term_empty_streak\":" + int_to_str(hb_ate) + ",\"embed_breaker_open\":" + act_brk + ",\"ctx_cos\":" + ctx_cos + ",\"dup_seeds\":" + dup_seeds + ",\"dup_wm\":" + dup_wm + ",\"dup_wm_global\":" + dup_wm_g + ",\"hebb_warm\":" + hebb_warm + ",\"hebb_max\":" + hebb_max + ",\"hebb_links\":" + hebb_links + ",\"hebb_cands\":" + hebb_cands + ",\"hebb_cand_max\":" + hebb_cmax + ",\"hebb_mass\":" + hebb_mass + ",\"hebb_edges\":" + hebb_edges + ",\"embed_consec_fail\":" + emb_cf + ",\"txt_damaged_pct\":" + dmg_pct + ",\"txt_damaged_n\":" + dmg_n + ",\"txt_scanned_n\":" + dmg_scan + ",\"txt_census_age_ms\":" + int_to_str(dmg_age) + ",\"hebb_wb_pending\":" + wb_pend + ",\"hebb_wb_drained\":" + wb_drain + ",\"hebb_wb_dropped\":" + wb_drop + ",\"hebb_wb_sent\":" + wb_sent + ",\"ise_fail\":" + fail_str + ",\"txt_damaged\":" + txt_dmg + "}"
|
||||
let payload: String = "{\"event\":\"heartbeat\",\"pulse\":" + pulse + ",\"tick\":" + pulse + ",\"boot\":" + boot + ",\"idle\":" + idle + ",\"idle_ms\":" + int_to_str(idle_ms) + ",\"node_count\":" + int_to_str(nc) + ",\"edge_count\":" + int_to_str(ec) + ",\"node_delta\":" + int_to_str(node_delta) + ",\"edge_delta\":" + int_to_str(edge_delta) + ",\"wm_active\":" + int_to_str(wmc) + ",\"wm_delta\":" + int_to_str(wm_delta) + ",\"wm_saturated\":" + int_to_str(wm_sat) + ",\"wm_top0_streak\":" + int_to_str(t0streak) + ",\"wm_churn\":" + int_to_str(wm_churn) + ",\"wm_top0_wm\":" + wm_top0_wm + ",\"sync_added_total\":" + sat_str + ",\"sync_age_ms\":" + int_to_str(sync_age) + ",\"wm_avg_weight\":" + wm_avg_str + ",\"wm_top\":" + wm_top + ",\"ts\":" + int_to_str(ts) + ",\"uptime_ms\":" + int_to_str(up_ms) + ",\"uptime\":\"" + up_human + "\",\"embed_ok\":" + int_to_str(emb_ok) + ",\"embed_backfilled\":" + bf_done + ",\"embed_count\":" + bf_total + ",\"embed_eligible\":" + embed_elig + ",\"wm_evicted\":" + act_evict + ",\"wm_evicted_delta\":" + int_to_str(evict_delta) + ",\"evict_floor\":" + ev_floor + ",\"evict_cap\":" + ev_cap + ",\"evict_bll\":" + ev_bll + ",\"breakthroughs\":" + act_bt + ",\"breakthroughs_delta\":" + int_to_str(bt_delta) + ",\"auto_term_streak\":" + int_to_str(hb_ats) + ",\"auto_term_empty_streak\":" + int_to_str(hb_ate) + ",\"embed_breaker_open\":" + act_brk + ",\"ctx_cos\":" + ctx_cos + ",\"dup_seeds\":" + dup_seeds + ",\"dup_wm\":" + dup_wm + ",\"dup_wm_global\":" + dup_wm_g + ",\"hebb_warm\":" + hebb_warm + ",\"hebb_max\":" + hebb_max + ",\"hebb_links\":" + hebb_links + ",\"hebb_cands\":" + hebb_cands + ",\"hebb_cand_max\":" + hebb_cmax + ",\"hebb_mass\":" + hebb_mass + ",\"hebb_edges\":" + hebb_edges + ",\"embed_consec_fail\":" + emb_cf + ",\"txt_damaged_pct\":" + dmg_pct + ",\"txt_damaged_n\":" + dmg_n + ",\"txt_scanned_n\":" + dmg_scan + ",\"txt_census_age_ms\":" + int_to_str(dmg_age) + ",\"hebb_wb_pending\":" + wb_pend + ",\"hebb_wb_drained\":" + wb_drain + ",\"hebb_wb_dropped\":" + wb_drop + ",\"hebb_wb_sent\":" + wb_sent + ",\"ise_fail\":" + fail_str + ",\"txt_damaged\":" + txt_dmg + ",\"fan_mean\":" + fan_mean + ",\"fan_min\":" + fan_min + ",\"fan_hits\":" + fan_hits + ",\"fan_steps\":" + fan_steps + ",\"fan_dref\":" + fan_dref + "}"
|
||||
ise_post(payload)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user