fix(identity): bridge public self anchor to the curated self node #24
@@ -95,6 +95,24 @@ fn init_soul_edges() -> Void {
|
||||
engram_connect(val_hope, val_trust, el_from_float(0.7), "co-value")
|
||||
}
|
||||
|
||||
// ensure_self_canonical_bridge — link the public self anchor (the graph API's
|
||||
// traversal_root, kn-efeb4a5b, which carries only incidental tag edges) to the
|
||||
// curated self node (015644f5, where the real identity / value / co-value edges
|
||||
// live). Without this, public self-traversal (name=self / neuron) reaches tags
|
||||
// instead of the curated identity. Idempotent: connects only if the edge is
|
||||
// missing, so it is safe to run every boot — including on an already-populated
|
||||
// graph where init_soul_edges() is skipped by the <100-edge gate.
|
||||
fn ensure_self_canonical_bridge() -> Void {
|
||||
let pub_self: String = "kn-efeb4a5b-5aff-4759-8a97-7233099be6ee"
|
||||
let curated_self: String = "015644f5-8194-4af0-800d-dd4a0cd71396"
|
||||
let nbrs: String = engram_neighbors_json(pub_self, 1, "out")
|
||||
if !str_contains(nbrs, curated_self) {
|
||||
engram_connect(pub_self, curated_self, el_from_float(0.95), "canonical-self")
|
||||
engram_connect(curated_self, pub_self, el_from_float(0.95), "canonical-self")
|
||||
println("[soul] canonical-self bridge built: kn-efeb4a5b <-> 015644f5")
|
||||
}
|
||||
}
|
||||
|
||||
// load_identity_context — pull key identity nodes from engram into working state.
|
||||
// Called at boot after engram_load. These nodes contain values, intellectual-dna,
|
||||
// memory-philosophy — the graph-stored self that chat.el can include in prompts.
|
||||
@@ -398,6 +416,9 @@ if is_genesis && safe_to_seed {
|
||||
} else {
|
||||
println("[soul] edges already present (" + int_to_str(edge_count_now) + ") - skipping init")
|
||||
}
|
||||
// Canonical-self bridge is idempotent — run it regardless of edge count so an
|
||||
// already-populated graph still gets the public->curated self link.
|
||||
ensure_self_canonical_bridge()
|
||||
// Genesis saves to its local snapshot file (it manages its own Engram).
|
||||
state_set("soul_snapshot_path", snapshot)
|
||||
engram_save(snapshot)
|
||||
|
||||
Reference in New Issue
Block a user