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:
2026-07-23 08:39:16 -05:00
parent b784750f69
commit 9e59c51f3c
5 changed files with 44 additions and 12 deletions
+17 -4
View File
@@ -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, " :([")