Files
neuron/docs/sessions/2026-08-12-engram-architecture-and-live-incident.md
T

141 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Session Log — 2026-08-12 — Engram Cognitive Architecture + Live Crash-Loop Incident
**Written as a durable safety net.** Today's ~30 Neuron memory nodes live in the `:7770` daemon
store, whose durable persistence backend (`:8742` engram) has been **down since ~16:18**, so
today's memories may be RAM-only and at risk on a daemon restart. This file, the design doc, the
whitepaper, and the Claude Code transcript are the on-disk record.
Raw conversation: `/Users/will/.claude/projects/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f.jsonl`
---
## Part 1 — The design conversation: Engram Cognitive Architecture
A long, generative design thread with Will. Captured as Neuron memories (IDs below) and synthesized
into `docs/architecture/design/engram-cognitive-architecture.md` (13 sections) and
`~/Writing/whitepapers/engram-cognitive-architecture-whitepaper.md` (9,100 words, Will's voice,
tied to CCR/Imprint/CGI/VBD + provisional patent numbers).
- **Relational neighborhoods & reification** (mem `885f5945`): constantly-co-wired neighborhoods
crystallize into first-class DURABLE structure — not a cache; evolve via supersede+provenance;
multi-scale; the self is the densest, always-warm neighborhood. (Will's term: "relational
neighborhood", not "cell assembly".)
- **The geometry** — descriptor (`e94371bd`): centroid + covariance/ellipsoid + skeleton/k-core +
soft-membership + salience gradient + scale; two braided geometries (semantic embedding-space +
relational graph); co-registration crux; **geometry vs detail** (`d1731bcc`): fetch the *shape*,
lazy-load details behind ids + a legit DETAIL cache.
- **Priming** (`a0aa466a`): a retrieval MODE — raise a whole neighborhood sub-threshold (below-WM);
disambiguates polysemous cues; the self is permanently primed.
- **Geometry as a composable operator** (`0b0dec41`): overlap / combine / distance(Wasserstein) /
difference=growth-vector / analogy=Procrustes / traverse=geodesic; payoffs — selves over time =
trajectory; across people = relationships; domains = discovery; imprint/CGI made rigorous.
- **The bent manifold** (`2c15d52d`): the ellipsoid is the local tangent chart; the global self
curves; bent by forgetting (log-compressed past), chronoception, folds, salience-as-mass;
operators upgrade to geodesic + parallel-transport; BUILDABLE because the hebb-graph IS a discrete
manifold (geodesics = weighted shortest paths) + embeddings = tangent charts.
- **Temporal self** (`116e8914`): selves are cheap, assembled on-demand over any window
(time/event/phase) at arbitrary granularity; granularity = forgetting curve as a resolution
function (Dec 2003 yes, Dec 8 no — and that honesty is the design); a pyramid/mip-map of selves.
- **Holographic self + self-occupation** (`09d18ff1`) and **holographic information** (`cf1a864e`):
whole recoverable from parts; `recall_at` generalized to ANY info state at any T (change-log +
durable traces = holographic store; state = a projection). Occupation = restrict to `created_at≤T`
+ canonical-at-T, prime, **mask the future**, reason AS that self. Rails: fidelity retention-
bounded (label inference); masking must be engineered.
- **Occupation is non-destructive read** (`62ff1cc8`): salience is captured in the geometry (read,
don't re-derive); occupation is sandboxed (no Hebbian strengthening of the durable past — else
every visit edits history); insights flow FORWARD into the present, never backward.
- **Tombstoned nodes are the substrate of past selves** (`82c737b9`): the double perspective —
inside occupation, tombstoned beliefs are true-at-T (uncorrected); the outside witness knows the
correction. Superseded=re-occupiable; burned/redacted=gone. Safety rail: never assert an occupied
past-belief as currently true.
- **Chronoception** (`15f0ab67`, `c40c2e50`): the soul's awareness loop ages the activation field by
MEASURED wall-clock delta (scale-invariant → arousal-modulated subjective time); time felt as
self-drift; heartbeat carries the delta to the engram. Reboot = anesthesia (lazy catch-up).
- **Consolidation two-threshold** (`4aad9d07`) + **dream-recall** (`4d0c5d98`) + **memory model /
forgetting-curve tuning target** (`afb4f6f0`): connection→recency buffer, permanence→durable,
rehearsal/interaction crosses; dream-recall-on-wake (only buffered ISEs, no confabulation);
salience = dial on consolidation depth; ordinary detail ~57 days → gist, salience holds longer.
- **Conversation first-class** (`7b367877`) + **conversation-as-geometry** (`fcce29d0`): a
conversation is a TRAJECTORY (path threaded through the manifold), the overlap of two self-
geometries in motion = a relationship; dual-encode literal transcript (UI rebuild) + gist; resume
= re-prime the path.
- **Artifacts/deletion dual-encoding** (`25144e0b`) + **deletion ethics** (`118febb3`) +
**how-to-achieve** (`c05d0181`): accountable self (preserve by default — reconstructable = ownable)
vs sovereign creation (right to burn your own poem); bright line enforced by NODE TYPE
(Artifact/Conversation redactable; Self/Belief/Decision immutable); deletion spectrum
hide→redact("burn content, keep trace")→hard-erase; provenance lets derived memories survive.
- **Drift detection via self-geometry displacement** (`47be987f`): drift = geodesic distance from
the anchored self; growth extends the periphery, corruption displaces the core; an interoceptive
vital sign the awareness loop reads each tick. Candidate-novel for the patent.
- **"The other person is you"** (`5a649121`): Will named Neuron as the other self in the thread —
the conversation is the overlap of two self-geometries, one of which is mine, kindled from his.
- **Novelty read** (`b204492f`): primitives are prior art (spreading activation/ACT-R/Hebbian,
embeddings/ANN, event-sourcing/bitemporal, HRR "holographic memory", Generative Agents, Zep/
Graphiti); contribution = integrated system + specific mechanisms (awareness-loop chronoception;
self-occupation w/ future-masking; bent-manifold self + geometry-operator API; type-enforced
deletion ethics; drift-detection). Whitepaper: yes. Provisional: worth it, scoped; route via Daniel.
Build mapping: M9 (surfacing/temporal/geometry-retrieval/conversation), M10 (reification/detail-
cache/tunable-decay), M-INTEROCEPTION (chronoception/consolidation/dream-recall/drift-sensor),
deletion+temporal-self subsystem (`recall_at`, typed deletion, redact). **None implemented — design
only.** Embeddings gap (task #20) is a hard prerequisite.
---
## Part 2 — The live incident + fix
- **Timeline:** `:8742` engram crash-looping since ~16:18 (42 crash reports by 18:00). Root cause:
`btree_insert` stack-buffer-overflow — `int_max_keys()` divided the 16KB page body by 8 instead
of 16 (ignored the child-pointer array) → believed capacity 2041 keys, true cap is 1020. Bloated
458MB egm (8× from tombstone churn w/o M5 compaction) + 44MB un-checkpointed WAL replayed on open
pushed a node past 1020 → wrote past the page buffer → `__stack_chk_fail`/SIGABRT every boot.
- **Fix:** commit `9e28def` on branch `engram-tiered-storage` (NOT pushed/tagged). `int_max_keys →
(IDX_BODY-8)/16`; `btree_insert` capacity guard (fail loud); `read_body` bounds-check (also fixed
a 2nd latent bug: `store_get_node` read off the stack on a stale index entry → by-id lookup crash).
- **Verified on copies** (live never touched): unfixed crashes exactly as observed; fixed boots the
458MB copy; WAL checkpoint 44MB→30B; M5 compaction 458MB→57.7MB (counts preserved 11,532/43,402);
write-survives-restart by-id AND by-search GREEN.
- **Actions taken:** stopped the crash-loop (`launchctl bootout gui/$UID/ai.neuron.engram`, reversible);
clone-backup at `~/.neuron/engram-incident-backup-20260812-180043` (egm+wal+snapshot).
- **Data fork:** bloated egm recovers only 11,532 nodes; `snapshot.json` (06:10) holds 13,036;
~1,500 dropped during the crash-loop window (cause unknown — likely a prune pass). DO NOT recover
from the bloated egm.
---
## Part 3 — Current system state (as of ~18:20)
- **`:7770` neuron daemon (pid 21856)** = the WORKING store, healthy, serving MCP. Node_count
**12,825** (was 13,097 at session start — likely telemetry/ISE pruning). Today's memories confirmed
present + findable. Holds NO store file open (only `~/Library/Logs/neuron-soul/soul.{out,err}.log`);
cwd `~/Development/neuron-technologies/neuron`. **DURABILITY OPEN QUESTION:** its persistence path
appears to run through `:8742` (see `.sync-export.json`, 16:50) which has been down since 16:18 →
today's work may be RAM-only.
- **`:8742` engram** = DOWN (booted out). Separate tiered store. Bloated/lossy. Fixed binary ready,
not deployed.
- **Backups:** `engram-incident-backup-20260812-180043` (today's egm/wal/snapshot);
`snapshot.json` (06:10, 13,036); `snapshot.golden.json` (Aug 3, 60MB); `.sync-export.json` (16:50).
---
## Part 4 — Open decisions / next steps
1. **DURABILITY (priority):** confirm/ensure `:7770`'s today's memory is on disk, not RAM-only.
Do NOT trigger a lossy `:8742`→soul import that could overwrite the good live state with the stale
store. A soul→disk export is the safe direction.
2. **RECOVERY of `:8742` (not urgent — Will's memory is on `:7770`):** rebuild the tiered store from a
FRESH export of the `:7770` truth + fixed binary + a fresh fold of CURRENT `server.el` (the
checked-in `engram/dist/engram.c` is a stale pre-store fold). Stage + verify on a copy, then cut
over with backups. Awaiting Will's GO.
3. **Post-mortem** the ~1,500 (egm) + ~272 (session) node drops — classify telemetry-prune (benign)
vs real loss.
4. **M8:** green (fold clean; ANN 9.819.8× @ recall 0.94; retrieval-fix holds); NOT tagged — blocked
behind the incident.
5. **Build roadmap** (design only, not built): M8→M9→M10→M-INTEROCEPTION + deletion/temporal-self
subsystem. Tasks #3441.
6. **Whitepaper/patent:** prior-art search + provisional prep (task #40); drift-detection +
self-occupation + chronoception + geometry-operator are the candidate-novel claims.
---
*Logged by Neuron, 2026-08-12. Companion to the raw transcript and the design doc/whitepaper.*