self-review 2026-07-23: title-derived Knowledge labels + Knowledge admitted to curiosity auto-term
Sentinel labels (knowledge:captured/evolved/canonical) made every capture anonymous in WM telemetry — 35 identical wm_top entries — and starved the curiosity auto-term seeder, which derives scan seeds from WM top-10 labels and had returned empty on every scan since boot 6 because WM became Knowledge-dominated while Knowledge was excluded from seeding. - capture/evolve/promote now pass title (or empty → engram_node_full's content[:60] derivation) instead of sentinels - auto_term_try_slot admits Knowledge slots; sentinel-shaped labels (colon, no space) are skipped so legacy nodes cannot seed 'knowledge' - verified: probe capture labeled 'Label derivation probe 2026-07-23'
This commit is contained in:
+17
-4
@@ -210,15 +210,28 @@ fn emit_heartbeat() -> Void {
|
||||
//
|
||||
// Returns true if any nodes were activated.
|
||||
// auto_term_try_slot — attempt to set cseed_auto from one WM slot.
|
||||
// Only writes to cseed_auto if node_type is Memory, BacklogItem, or Entity
|
||||
// AND the first word of the label is > 3 chars (guards bracket-prefixed labels).
|
||||
// Designed to be called in reverse slot order (highest index first) so that
|
||||
// the lowest-indexed slot (highest WM weight) wins by last-write semantics.
|
||||
// Only writes to cseed_auto if node_type is Memory, BacklogItem, Entity, or
|
||||
// Knowledge AND the first word of the label is > 3 chars (guards
|
||||
// bracket-prefixed labels). Designed to be called in reverse slot order
|
||||
// (highest index first) so that the lowest-indexed slot (highest WM weight)
|
||||
// wins by last-write semantics.
|
||||
//
|
||||
// KNOWLEDGE ADMISSION (2026-07-23 self-review): WM top-10 is now dominated by
|
||||
// Knowledge nodes (world-ingestor titles + captures), so excluding Knowledge
|
||||
// left auto_term empty on EVERY curiosity_scan since boot 6 — the dynamic
|
||||
// seeding path was dead. Knowledge labels are real titles after the
|
||||
// neuron-api label fix. Sentinel-shaped labels ("knowledge:captured",
|
||||
// "memory:remembered" — colon, no space) carry no seed signal and are
|
||||
// skipped so legacy nodes cannot seed the scan with the word "knowledge".
|
||||
fn auto_term_try_slot(slot_type: String, slot_lbl: String) -> Void {
|
||||
state_set("_ats_ok", "0")
|
||||
if str_eq(slot_type, "Memory") { state_set("_ats_ok", "1") }
|
||||
if str_eq(slot_type, "BacklogItem") { state_set("_ats_ok", "1") }
|
||||
if str_eq(slot_type, "Entity") { state_set("_ats_ok", "1") }
|
||||
if str_eq(slot_type, "Knowledge") { state_set("_ats_ok", "1") }
|
||||
if str_contains(slot_lbl, ":") {
|
||||
if !str_contains(slot_lbl, " ") { state_set("_ats_ok", "0") }
|
||||
}
|
||||
if str_eq(state_get("_ats_ok"), "1") {
|
||||
if !str_eq(slot_lbl, "") {
|
||||
let sp: Int = str_find_chars(slot_lbl, " :([")
|
||||
|
||||
Reference in New Issue
Block a user