docs: record the correspondence corrections — grounding, faculties, wonder, consolidation
The architecture docs describe four things the design spec has since ruled out, and each one is a supervisor invented for something that should be a property of the substrate: grounding modelled as a subsystem rather than as the edge weight it already is; faculties modelled as parameters of a read when abduce is a write; wonder materialized as a maintained manifest when it is the boundary of the structure; and consolidation implemented eleven times behind tickers when a brain has no cron job. Left standing rather than deleted, per the repo's own supersession discipline — the trail of how the understanding matured is the point. Each stale passage is marked inline and points at a new 06 §12 that transcribes the corrections and records the measured consolidation inventory. Authority: foundation/el, branch design/correspondence-and-censorship, lang/spec/correspondence-and-censorship.md.
This commit is contained in:
@@ -149,6 +149,35 @@ read — unverified/TODO.)*
|
||||
|
||||
## Write-protection
|
||||
|
||||
> **Superseded (2026-08-16) — see `06-cognitive-architecture.md` §12.5.**
|
||||
> Authority: `foundation/el/lang/spec/correspondence-and-censorship.md` §6 (branch
|
||||
> `design/correspondence-and-censorship`).
|
||||
>
|
||||
> > **In an immutable substrate, any mechanism that refuses a write is either
|
||||
> > redundant with immutability, or an epistemic constraint misfiled as a
|
||||
> > protective one.**
|
||||
>
|
||||
> The requirement this gate was built for was never stated. It is
|
||||
> **non-circularity of the reference frame** — a reference fitted to its own
|
||||
> readings reports perfect correspondence forever while drift becomes
|
||||
> undetectable from inside. That requirement is satisfied by *when* (the frame
|
||||
> updates while activation is internally seeded, not while it is being used to
|
||||
> act), not by *what*, so **the gate becomes unnecessary rather than removed, and
|
||||
> nothing takes its place.** Corruption requires mutation, and the engram does not
|
||||
> mutate: recoverability, governance, evidence quality, and rate are already
|
||||
> properties of the substrate. Only **authorization** is residue, and it is
|
||||
> bounded — an unauthorized writer can *propose*, never erase.
|
||||
>
|
||||
> **This section contradicts itself.** Thirty-five lines below, under
|
||||
> *Immutability*, this same document states the conclusion in its own words:
|
||||
> *"nothing it does is ever destructive — the safety is **after** the act, not a
|
||||
> gate before it"* (`:185-187`). The 403 gate documented here **is** the
|
||||
> before-the-act gate that sentence says is unnecessary. The design spec §6 names
|
||||
> exactly this redundancy.
|
||||
>
|
||||
> The mechanism below is **still LIVE in code** and is described accurately; what
|
||||
> is superseded is the claim that it is needed.
|
||||
|
||||
`is_protected_node(id)` (`neuron-api.el:20-37`) is a **hard-coded allowlist of 15
|
||||
identity/value node IDs** — the self root, the values hub, intellectual-dna,
|
||||
memory-philosophy, voice, and the 8 value nodes. Handlers that could mutate the
|
||||
@@ -158,10 +187,16 @@ graph (tombstone / supersede / evolve / connect) check it and return HTTP 403
|
||||
(`handle_api_link_entities`).
|
||||
|
||||
**The one sanctioned override** is `POST /api/neuron/cultivate`
|
||||
(`neuron-api.el:781-816`) — it performs the same ops with the protection check
|
||||
(`handle_api_cultivate`, `neuron-api.el:960` — **the `:781-816` cited here is
|
||||
stale; verified 2026-08-16**) — it performs the same ops with the protection check
|
||||
skipped, gated by convention to Will's explicit cultivation sessions. The self
|
||||
layer is writable, but only through a deliberate door.
|
||||
|
||||
> **Superseded (2026-08-16).** A door built for a wall that need not stand. Per
|
||||
> §12.5 of `06`, the gate above is redundant with immutability, so the override
|
||||
> for it is redundant too. Neither is deleted here — this is a documentation
|
||||
> branch; the change is sequenced in `correspondence-and-censorship.md` §11.
|
||||
|
||||
## Immutability — tombstone, never delete
|
||||
|
||||
Engram nodes are immutable (`memory.el:64-69`). The model is:
|
||||
@@ -215,6 +250,17 @@ Engram nodes are immutable (`memory.el:64-69`). The model is:
|
||||
- **Off-cluster backup:** a Kubernetes CronJob (`engram-backup`) tars `/data`
|
||||
every 15 minutes to `gs://neuron-db-backup/gke/neuron-prod/` and keeps the last
|
||||
96 (24h) (`infrastructure/platform/k8s/neuron-mcp/backup-cronjob.yaml`).
|
||||
> **Ticker, but not consolidation (2026-08-16).** Flagged because
|
||||
> `06` §12.4's sequencing item is *"no tickers, no cron"* and an auditor
|
||||
> sweeping for tickers will land here. This one is **ops/backup, not
|
||||
> cognition** — it does not consolidate and must not be folded into the
|
||||
> dreamer. Its local counterpart is the `ai.neuron.engram-backup` launch agent
|
||||
> (`StartInterval = 3600`, measured 2026-08-16); a separate
|
||||
> `ai.neuron.snapshot-backup` runs at `StartInterval = 900`. Note the
|
||||
> **discrepancy**: this doc says the backup interval is 15 min, which matches
|
||||
> `snapshot-backup` (900 s) rather than the local `engram-backup` (3600 s).
|
||||
> The cluster manifest was not read on this branch — treat the 15-min figure as
|
||||
> unverified here.
|
||||
- **Retention:** InternalStateEvent telemetry pruned at 48h
|
||||
(`ENGRAM_ISE_RETENTION_MS`, `server.el:485-499`).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user