[FIX] L1 pin root-caused and cleared; S-series closed; instrument census

mindfabric-00 had been event-loop-pinned for 6+ days (100% CPU, /health silent).
Profile + CDP inspector named two hot paths, both from runTemporalPipeline:

  checkForCycle -> getCausalEdgesFromSqlite   99.8% of samples
  tryExtendChains -> getChainsContainingSeq   now dominant (json_each scan)

Cause of the first: ANALYZE had never been run, so SQLite preferred a boolean
index (idx_caused_tombstoned, matching ~all 836k edges) over idx_caused_from.
ANALYZE across 15 module DBs flipped the plan; 6.4x on a microbenchmark and
99.8% -> 6.0% in the live profile. /health went from silent to 200 in 0.13s.

B1.1's fan-out cap is IMPLEMENTED AND WORKING (today: max in-degree exactly 20,
zero violations; pre-23-June: max 629, avg 67.6). The defect is data, not code —
836k edges / 813k chains minted under ungoverned fan-out before the fix landed.
Repair run: derived stores wiped, logchain preserved, replay in flight.

S-series closed (jurist had already ruled all of Q1-Q5 on 2026-05-18):
  S6/S7/S9 implemented (Symmetria §3 flags, `suspend` outcome, wrap-up §8 tenses)
  S2 rebuilt as [FIX] — wake-digest unwrapped-session detector, discrimination-
    gated on real sessions (11 wrapped / 2 unwrapped)
  S4/S5 withdrawn with MemPalace (steward ruling)
Dormant legacy dispositioned: PENDING-4/5/11/12, CD-03, ICP-19 duplicate.
Open authorization items 22 -> 10.

Census 01: which instruments have no real negative instance. Finding — the
governance drift-check has 3 of 5 families inert against the current CLAUDE.md,
and 71 of 75 verification-ladder entries are cited nowhere outside the ladder.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WuMjg3ipEVa3n8CoSzoyvc
This commit is contained in:
David F Glidden
2026-08-03 20:57:41 +02:00
co-authored by Claude Opus 5
parent 23e7515302
commit 0a48e6934d
8 changed files with 427 additions and 16 deletions
+42 -12
View File
@@ -17,14 +17,16 @@ does not.
<!-- Claude Code: append new PENDING items below this line. Do not edit existing entries. -->
## PENDING-4 — Bug D: Idle stall + batch embedding during replay
## PENDING-4 — Bug D: Idle stall + batch embedding during replay (CLOSED 2026-08-03 — done since March; the register never caught up)
**Date:** 2026-03-22
**Tag:** [FIX] — reclassified from next-PR to this-PR by steward authorization
**Summary:** Idle state machine transitions during replay freeze async operations. Batch embedding and vector replay skip reduce Phase 1 from 83 hours to ~10 minutes.
**Files affected:** replay-coordinator.ts, bootstrap.ts, ollama-embeddings.ts, vector/index.ts, idle-state-machine.ts
**Status:** Implemented and verified.
## PENDING-5 — Recall query path returns 0 results
**CLOSED 2026-08-03 — verified against substrate, not taken from the self-assessment.** The `**Status:** Implemented and verified.` line above is the item's own claim about itself; it was checked rather than believed. Corroborated in `BetterMemories.io`: `betterMemories_app#120` (*Phase 2 replay stuck in infinite resource-pause loop*) **closed**, `#133` (*modules report 'ready' during active replay*) **closed**, plus `03b6a78`, `5b14db7`, `decbdee`, and `3332772` (N6, #175 merged) continuing the replay/idle work well past March. **Why it stayed open 4½ months:** the wake digest recognises `(CLOSED)`/`COMPLETED` in a *header*, not a `**Status:**` line in a *body* — so a completed item advertised itself as open every morning.
## PENDING-5 — Recall query path returns 0 results (CLOSED 2026-08-03 — instance resolved via GH; the CLASS is still open at #165)
**Date:** 2026-03-22
**Tag:** [FIX]
**Summary:** After Phase 1 completes, recall() returns 0 results despite modules reporting ready and vector processing live events. Module dispatch timeouts in query-router. Write path works; read path has separate issue.
@@ -32,6 +34,10 @@ does not.
**Files affected:** `src/core/keystone/query-router.ts`, `src/core/keystone/query-types.ts`, possibly `src/modules/vector/queries.ts`
**Awaiting:** Investigation — likely needs Seb's input on the query dispatch architecture.
**CLOSED 2026-08-03 — the work migrated to GitHub and this register kept a March snapshot.** Seb did the investigation through the issue tracker: `betterMemories_app#124` (*Ollama unavailability silently empties vector query results*) **closed**, `#135` (*temporal query errors silently return empty results*) **closed**, resolved by `bd1f650 feat: typed query status — distinguish 'no results' from 'module failed'` — which is precisely this item's symptom (*"returns 0 results despite modules reporting ready"*). Also `c6689eb` (recall ranking, #120/#80/#89/#107).
⚠ **The instance is closed; the CLASS is not.** `#165 — H2: silent recall failure on battery` is **open, priority:critical, production blocker**, and is the same failure shape from a different cause: recall returning empty without saying so. Closing PENDING-5 must not read as "silent-empty-recall is solved." Tracked at #165, not here — the register should not hold a second stale copy of an issue GitHub owns.
## PENDING-10 — Skip vector embedding during replay (architectural)
**Date:** 2026-03-22
**Tag:** [PROPOSAL]
@@ -46,7 +52,7 @@ does not.
**Consequence for the split:** these are two separable pieces of work and should probably be two items. The performance proposal is architectural and awaits review; the audit question is load-bearing for the provenance story and is now scoped inside Seb's #176 restore drill. Splitting them is the steward's call — flagged, not done.
## PENDING-11 — Approve I15 (ICP-9 Pilot Registry Entry: The Accusative Default)
## PENDING-11 — Approve I15 (ICP-9 Pilot Registry Entry: The Accusative Default) (CLOSED 2026-08-03 — REVIEWED-11 AUTHORIZED 2026-03-23)
**Date:** 2026-03-23
**Tag:** [PROPOSAL]
**Summary:** Approve I15 as the pilot registry entry, validating both the invariant (The Accusative Default) and the `l1_contamination_profile` schema field. Full entry drafted in `relational-gap-registry-amendment.md` §2 since 2026-03-09.
@@ -58,7 +64,11 @@ does not.
**Files affected:** Registry (governance metadata, not code).
**Awaiting:** Steward entry in REVIEWED.md.
## PENDING-12 — Lodge Design Notes DN-GOV-01 through DN-GOV-04
**CLOSED 2026-08-03 — the entry it awaits has existed since the day it was written.** `REVIEWED-11 — Approve I15 (ICP-9 Pilot Registry Entry)`, **Date 2026-03-23, Decision AUTHORIZED**, ratifying `l1_contamination_profile` as mandatory for all non-contingent principles and deferring `residual_risk` pending pilot evidence. The downstream this item lists as blocked was ruled months ago: **REVIEWED-15 (I17)** and **REVIEWED-16 (I16)**. Registry file verified present.
**Why it stayed open 4½ months — two independent defects, either alone sufficient.** (1) The REVIEWED-11 and REVIEWED-12 blocks are **indented by one space**, so every `^## REVIEWED` anchor steps over them; a fence-tracked census of `REVIEWED.md` finds exactly **3** such orphans (these two and REVIEWED-74). (2) Their headers **name no PENDING**, and resolution is by named item, not by number — so even flush-left they would discharge nothing. Correcting `REVIEWED.md` is **not the executor's to do** (Constitutional Constraint #1); flagged for the steward, closed here instead.
## PENDING-12 — Lodge Design Notes DN-GOV-01 through DN-GOV-04 (CLOSED 2026-08-03 — REVIEWED-12 AUTHORIZED 2026-03-23; all four files verified present)
**Date:** 2026-03-23
**Tag:** [HARDENING]
**Summary:** File four design notes from the Governance Velocity seed brief into `l2-constitution/`:
@@ -71,6 +81,10 @@ does not.
**Steward authorization:** Steward authorized filing 2026-03-23. DN-GOV-03 (baseness elevation) requires separate steward declaration before advancing beyond DESIGN NOTE. DN-GOV-04 (pace governor) is tooling and can iterate without further authorization.
**Awaiting:** Steward entry in REVIEWED.md.
**CLOSED 2026-08-03 — ruled the same day, and the series ran on without it.** `REVIEWED-12 — Lodge Design Notes DN-GOV-01 through DN-GOV-04`, **Date 2026-03-23, Decision AUTHORIZED** (*"DN-GOV-03 requires separate declaration before elevation. DN-GOV-04 is tooling, iterate freely"*). All four files verified present in `CapableMind-AI/docs/thinking/David/l2-constitution/`. The series continued far past this item — **REVIEWED-13** ruled DN-GOV-05/06/07 and **REVIEWED-14** ruled DN-GOV-08 — so the register was reporting a blocked item whose successors had already been decided. Same two-defect cause as PENDING-11 (indented header; names no PENDING).
**Still genuinely outstanding from this item, and NOT closed by it:** DN-GOV-03's *separate steward declaration* before it advances beyond DESIGN NOTE. That is a live steward action with no home now that this item is closed — surfaced 2026-08-03 rather than allowed to vanish with the closure.
## PENDING — ICP-19 Remit Expansion (Observer Problem)
**Date opened:** 2026-04-07
**Action required:** Steward-reviewer conversation with the External Auditor before Observer Problem mechanisms advance to constitutional language.
@@ -90,7 +104,9 @@ does not.
---
## PENDING — ICP-19 Remit Expansion
## PENDING — ICP-19 Remit Expansion (CLOSED 2026-08-03 — DUPLICATE of the ICP-19 entry above; the live one is retained there)
**Duplicate note, 2026-08-03.** Same subject, same `**Date opened:** 2026-04-07`, same requirement (a direct steward–reviewer conversation on remit expansion before Observer Problem mechanisms advance to constitutional language) as `## PENDING — ICP-19 Remit Expansion (Observer Problem)` earlier in this file. Two records of one obligation, counted twice by every tally and violating *one canonical source of truth per document*. **The substance is not withdrawn** — the prerequisite conversation about the incommensurable foundational positions (OP-CN-01) is preserved in the retained entry, which is the canonical one. Closing the copy, not the obligation.
**Title:** ICP-19 External Review — Human-Side Governance Scope
**Date opened:** 2026-04-07
@@ -105,7 +121,9 @@ does not.
---
## PENDING — CD-03 Operative
## PENDING — CD-03 Operative (CLOSED 2026-08-03 — bookkeeping only: this is a RECORD of an operative declaration, never an open item)
**Bookkeeping note, 2026-08-03.** Nothing constitutional is decided or altered here. This entry's own `**Status:**` reads **OPERATIVE — immediate effect**, and its `**Date authorized:**` is 2026-04-07: it is a *notification* that CD-03 is in force, filed in the register because that is where notifications went. The register's tooling reads every `## PENDING` block as an item awaiting authorization, so for four months the wake reported an in-force declaration as an outstanding `[CONSTITUTIONAL]` decision. Marked closed **as a register entry only**. The declaration itself is untouched and remains operative at `CapableMind-AI/docs/thinking/David/l2-constitution/observer-problem/Constitutional Declaration — CD-03.md` — note the path drifted from the one recorded below (`observer-problem/` is now under `l2-constitution/`). CD-03 §IV.4 continues to bind all mechanism proposals.
**Title:** Constitutional Declaration CD-03 — The Observer Condition and the Limits of Constitutional Architecture
**Date authorized:** 2026-04-07
@@ -120,7 +138,7 @@ does not.
---
## PENDING-S2 — Hook-aware deposit detection in wake-up (awaiting Q1 hooks contract)
## PENDING-S2 — Hook-aware deposit detection in wake-up (CLOSED 2026-08-03 — obligation rebuilt as [FIX]; never awaited the jurist)
**Date:** 2026-05-18
**Tag:** [PROPOSAL]
**Phase 4 — awaits Jurist contract definition.**
@@ -133,9 +151,11 @@ does not.
**Awaiting:** Jurist shape-review of contract language (candidate text in Jurist shape-review document: *"The authoritative deposit is a wrap-up deposit. A hook-only deposit is an emergency fallback, not a complete inheritance. Wake-up must detect which it received and calibrate accordingly."*). Then steward authorization.
**CLOSED 2026-08-03 — obligation harvested, mechanism rebuilt as `[FIX]`.** The `Awaiting` line above was **wrong for 2½ months**: the jurist affirmed Q1 on 2026-05-18 and explicitly assigned the contract to the steward — *"CC cannot define what 'authoritative deposit' means — that's constitutional language, and it belongs to you."* Nothing was ever awaited from the jurist. Meanwhile the premise died: no Stop hook is configured, and MemPalace — whose `mempal_save_hook.sh` was the deposit — is retired, steward-ruled 2026-08-03 (*"MemPalace is retired and any associated functionality also, except some of the concepts we harvested and implemented in our own way"*). **The obligation survived its instrument**: `wake-digest.py` computed `Last wrap` from mtime, so a session ending without `/wrap-up` left the next wake reporting an *older* session's thread as current, silently. Rebuilt on our own substrate — the transcripts are the only witness that a session ran. `sec_unwrapped()` + `transcript_span()` + `wrap_inside()`, self-tested with four unit controls and a **discrimination check over real sessions (11 wrapped / 2 unwrapped)**; the warning states what it does not establish. No doctrinal contract required — the mechanism is now ours, not a cross-repo hook. Two real unwrapped sessions found in history: 07-28 06:07, 07-29 16:21.
---
## PENDING-S4 — Post-compression marker; cross-repo with mempalace (awaiting Q1)
## PENDING-S4 — Post-compression marker; cross-repo with mempalace (CLOSED 2026-08-03 — WITHDRAWN with MemPalace; concept kept as a Symmetria §3 flag)
**Date:** 2026-05-18
**Tag:** [PROPOSAL]
**Phase 4 — cross-repo coordination.**
@@ -148,9 +168,11 @@ does not.
**Awaiting:** Jurist contract definition (Q1); steward authorization; mempalace upstream coordination.
**WITHDRAWN 2026-08-03 — MemPalace-associated functionality, retired with it** (steward ruling: *"MemPalace is retired and any associated functionality also"*). The marker was to be a MemPalace **diary entry** written by `mempal_precompact_hook.sh`; no PreCompact hook is configured, and the diary no longer exists. **The concept was harvested rather than lost**: post-compression confidence claims are now a standing Symmetria §3 contamination flag (*"the working memory was trimmed; what feels certain now may rest on what was lost"*), landed with S6 the same day. That is the durable half — a flag needs no hook to fire.
---
## PENDING-S5 — Authoritative-diary marker; wrap-up ↔ Stop hook (awaiting Q1)
## PENDING-S5 — Authoritative-diary marker; wrap-up ↔ Stop hook (CLOSED 2026-08-03 — WITHDRAWN; the race it names can no longer occur)
**Date:** 2026-05-18
**Tag:** [PROPOSAL]
**Phase 4 — cross-repo coordination.**
@@ -163,9 +185,11 @@ does not.
**Awaiting:** Jurist contract definition (Q1); steward authorization; mempalace upstream coordination.
**WITHDRAWN 2026-08-03 — the race it names can no longer occur.** Both parties to the collision are gone: the MemPalace diary (retired 2026-07-07) and the Stop hook that wrote the second entry (`mempal_save_hook.sh` — not configured; live hooks are `SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`). With a single writer — `/wrap-up` writing the session memory file — there is no depleted-context second entry to be mistaken for the canonical one. Withdrawn as **discharged by events**, not deferred. Distinguished from S2 deliberately: S2's obligation outlived its instrument and was rebuilt; S5's obligation died with the substrate that created it. If a second automated writer of session records is ever introduced, this item is the precedent to re-open.
---
## PENDING-S6 — Symmetria §3 contamination flag applications of the Directive elaboration
## PENDING-S6 — Symmetria §3 contamination flag applications of the Directive elaboration (CLOSED 2026-08-03 — IMPLEMENTED)
**Date:** 2026-05-18
**Tag:** [HARDENING]
**Phase 3b — depends on S0 (now CLOSED).**
@@ -184,9 +208,11 @@ does not.
**Awaiting:** Steward authorization (S0 closure unblocks).
**IMPLEMENTED 2026-08-03** — `~/.claude/skills/symmetria/SKILL.md` §3. All six flags landed: the three time-the-task-requires applications (lectio · diagnose-don't-fix · dwell-on-composition) grouped as one entry under the now-constitutional Q4 elaboration, plus premature-closure-pulse (D1), query-shaped-by-what-it-wants-to-find (D5), and post-compression-confidence (D4). D4 is retained on its own merit though S4 was withdrawn the same day — compaction still occurs; only the MemPalace marker died. Unblocked since Q4 landed in `~/CLAUDE.md`; the delay was bookkeeping, not dependency.
---
## PENDING-S7 — Symmetria `check` mode: add `suspend` outcome (awaiting Q5 + relates to Q4)
## PENDING-S7 — Symmetria `check` mode: add `suspend` outcome (CLOSED 2026-08-03 — IMPLEMENTED; Q5 was affirmed 2026-05-18)
**Date:** 2026-05-18
**Tag:** [HARDENING]
**Phase 5.**
@@ -199,9 +225,11 @@ does not.
**Awaiting:** Steward authorization.
**IMPLEMENTED 2026-08-03** — `~/.claude/skills/symmetria/SKILL.md` §6 now reads `proceed | return-and-reframe | suspend | escalate`, with `suspend` defined against its two neighbours (not `escalate`, which carries urgency; not `return-and-reframe`, which says the work is wrong) and required to name what is suspended and what would resume it. The header's *"awaiting Q5"* was stale: **Q5 was affirmed 2026-05-18** (*"Yes, add it"*), conditional only on Q4, which has since landed. Used in this session before it was written — the hold on CONTROL-A v2 is a `suspend`, not an `escalate`.
---
## PENDING-S9 — Wrap-up §8 output template enriched to match practice
## PENDING-S9 — Wrap-up §8 output template enriched to match practice (CLOSED 2026-08-03 — IMPLEMENTED; Q2/Q3 were affirmed 2026-05-18)
**Date:** 2026-05-18
**Tag:** [HARDENING]
**Phase 5 — depends on Q2 + Q3 (Q3 confirmed by Jurist).**
@@ -214,6 +242,8 @@ does not.
**Awaiting:** Steward authorization. Optional relationship to S1: implement S1 first (minimal additive), then S9 as deeper revision; or fold S1 into S9 as single revision.
**IMPLEMENTED 2026-08-03** — `~/.claude/skills/wrap-up/SKILL.md` §8 restructured into the three tenses. S1 had already landed (archived), so this is the deeper revision on top of it. **The diagnosis was exact and sharper than the item stated: Future was already well-specified — pulling thread, resumption point, literal question, and Q3's constitutive pause statement were all present — while Past and Present were *wholly absent*.** Added: what-happened / what-held / what-was-corrected (Past) and the-mood / confidence-to-recalibrate (Present), with deferred-decisions and skill-harvest relocated under Present. Future deliberately still leads, inverting the memory file's narrative order: the steward reads this at departure, but it is written for arrival. Q2 was affirmed 2026-05-18 and Q3 elevated to constitutive the same day; both had landed. Every pre-existing field survives — none dropped.
---
## PENDING-76 — Authorization class follows claim class (REMANDED; executor recommends withdrawal)