fix(identity): bridge public self anchor to the curated self node #24
Reference in New Issue
Block a user
Delete Branch "fix/canonical-self-bridge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Adds
ensure_self_canonical_bridge()— an idempotent boot-time repair that links the public self anchor to the curated self node with acanonical-selfedge, only when it's missing. Runs in theis_genesis && safe_to_seedsave path, ungated by the<100edge count, so the live populated graph is repaired and persisted.Why (verified against the live graph)
name=self/neuron→kn-efeb4a5b(neuron-api.el:471). Live, that node has 8 edges, alltagged.015644f5— live, 1,461 edges (identity,embodies,remembers, value/co-value links).This is HANDOFF §2 "canonical self-ID." Note: the sibling item, "value/identity edges don't exist in live graph," is stale — those edges already exist on
015644f5. The only real gap was the anchor mismatch, which this fixes.⚠️ FLAGGED FOR WILL — design decision to confirm
I chose the additive bridge-edge approach over changing the resolver. Please confirm it matches your identity architecture:
kn-efeb4a5b → 015644f5,canonical-self) vs. repointing the resolver (neuron-api.el:471→015644f5) vs. config (neuron.self.traversal_root). I picked the bridge as least-invasive and reversible. Your call on the canonical direction.engram_neighbors_json(...,"out")substring check — acceptable, or do you want a dedicated edge-exists primitive?snapshot.master.json; if you want them covered, the bridge should also be baked into the master seed (follow-up).Verification status (honest)
elc(darwin arm64), exit 0.elbwrong-arch; same toolchain reddening CI). Needs a soul build + smoke test before merge.🤖 Generated with Claude Code
@will.anderson - review request, identity architecture. Verified live: name=self/neuron resolves to kn-efeb4a5b which has only 8 'tagged' edges, while the curated self 015644f5 has 1461 (identity/value/co-value), so public self-traversal misses the real identity. This adds an idempotent ensure_self_canonical_bridge() linking the two with a 'canonical-self' edge in the genesis save path. Your call: bridge-edge (this PR) vs. repointing the resolver (neuron-api.el:471) vs. config (neuron.self.traversal_root). Compile-checked with elc; needs your build + smoke test. Note: the HANDOFF's 'value edges don't exist in live graph' was stale - they exist; the only gap was this anchor mismatch.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.