session 2026-06-23: N6 deployed live + merged #175 + PENDING-41 corrected (43L/43M already designed) + OCR-workhorse plan + skill harvest

This commit is contained in:
David F Glidden
2026-06-23 22:35:16 +02:00
parent 3ca8e75c1b
commit d3b22cabe2
5 changed files with 135 additions and 1 deletions
+12
View File
@@ -964,3 +964,15 @@ The Jurist's six-phase authorization map governs sequencing. Cross-cutting succe
**Recommendation:** Option 1 (steward-selected). Keep ARC-scoped for now (it serves the AldineXXI spec); it may become a template for L1/be later if it proves itself — do not generalize prematurely. **Recommendation:** Option 1 (steward-selected). Keep ARC-scoped for now (it serves the AldineXXI spec); it may become a template for L1/be later if it proves itself — do not generalize prematurely.
**Files affected:** `docs/AldineXXI-Codex/operations.yaml` (new, DRAFT); on authorization, a one-line pointer added to ARC `CLAUDE.md` ("consult first") and a note at `/wake-up` for ARC sessions. **Files affected:** `docs/AldineXXI-Codex/operations.yaml` (new, DRAFT); on authorization, a one-line pointer added to ARC `CLAUDE.md` ("consult first") and a note at `/wake-up` for ARC sessions.
**Awaiting:** REVIEWED-44 placement by the steward. **Steward authorized verbally 2026-06-18** (away from machine; could not author the REVIEWED text). On that authorization: `operations.yaml` flipped to OPERATIVE; ARC `CLAUDE.md` pointer added; committed + pushed + deployed. REVIEWED-44 to be written by the steward to close the loop on paper. **Awaiting:** REVIEWED-44 placement by the steward. **Steward authorized verbally 2026-06-18** (away from machine; could not author the REVIEWED text). On that authorization: `operations.yaml` flipped to OPERATIVE; ARC `CLAUDE.md` pointer added; committed + pushed + deployed. REVIEWED-44 to be written by the steward to close the loop on paper.
## PENDING-41 — [CORRECTED/LARGELY-WITHDRAWN] Consumer-hardware support is ALREADY designed (43L/43M); residual = verify on M1-Air-class + clasp
**Date:** 2026-06-23 (revised same day after reading the spec, per steward pointer)
**Tag:** [HARDENING] (downgraded from PROPOSAL — the proposal was largely reinventing existing design)
**Self-correction (integrity):** My original PENDING-41 proposed "make consumer hardware a first-class target with graceful generative degradation" as if novel. **It is not — Seb already designed it.** `local-inference-spec` Amendment **43L (Hardware-Graduated profiles: lightweight/standard/full/appliance)** + **43M (Tiered Circle Inference, `'circle'` provider tier §4.13)**: low-tier nodes run tiny local models (qwen3.5:0.8b/2b) and **rely on circle inference** for frontier work; a **clasp** serves big-model inference to members (`CLASP_BASE_MODELS`); FM-009 GPU-degraded circuit breaker already specced. Do NOT send the original proposal to Seb — naive + redundant.
**What today's saturation actually was (corrected):** the live Air runs **standalone** — unpaired (no circle/clasp; `isClasp=false`), no teacher transport (Anthropic disabled; fleet `kronos`/`atlas` 502), attempting frontier generative locally on one GPU. The design's offload answer (frontier → circle/clasp/teacher) simply isn't active. **Deployment/config state, not a design gap.**
**Genuine residual (verify-first, do NOT assert to Seb yet):**
1. Spec reference target = **M4 Pro / 24GB+**; steward's machine = **M1 Air / 16GB**, below it. Does `standard`/`lightweight` profile + tiered-circle-inference actually run well on M1-Air-class? Unverified.
2. **FM-009 GPU-degraded guard did not prevent 64 timeouts** on the entity:relationship slot path live — is the guard active on slot inference, or another path? (Or binary predates it.) Verify before raising.
3. Model-resolution oddity: boot resolved `tier=standard → qwen2.5:3b` (absent); actual calls hit `qwen3.5:4b`.
**Design-aligned move:** the 64GB mini = **appliance** = a natural **clasp**. Pair the Air into a circle with the mini as clasp → Air runs light, mini serves frontier inference. Seb's architecture for exactly the steward's two-machine setup. **Verify on a clone first**, not the live Air.
**Awaiting:** nothing to send Seb yet. Next step is VERIFICATION (does the existing tiered/clasp path work on M1-Air-class), not a proposal. Findings: `docs/thinking/David/l1-reliability/l1-post-n6-deploy-findings-2026-06-23.md`.
+4 -1
View File
@@ -43,7 +43,10 @@ permalink: claude-memory/memory
- [Be (laundromat)](project-be-laundromat.md) — canonical workstream tracker established 2026-06-08 (Seb-relay of locked decisions). Be = Skemantix startup (Seb+David) funding CapableMind's funding-ladder; **bridge, not venture**. Decisions LOCKED: entity/exit (CapableMind decoupled, grant-funded), pricing (Living $12.99/mo · Archive $69.99/yr · Memorial $49.99/yr · Renovate ~$199 · $8.99 floor), CF Self-Serve Agency + versioned-template-package infra. **a11y gate MERGED (Pat 100/100/100).** Pre-revenue: the WTP gate = renovate Pat → charge her. **Discipline: stop adding spec until the gate clears → nothing for executor on be until then.** Repo @ `f43a0fd`. - [Be (laundromat)](project-be-laundromat.md) — canonical workstream tracker established 2026-06-08 (Seb-relay of locked decisions). Be = Skemantix startup (Seb+David) funding CapableMind's funding-ladder; **bridge, not venture**. Decisions LOCKED: entity/exit (CapableMind decoupled, grant-funded), pricing (Living $12.99/mo · Archive $69.99/yr · Memorial $49.99/yr · Renovate ~$199 · $8.99 floor), CF Self-Serve Agency + versioned-template-package infra. **a11y gate MERGED (Pat 100/100/100).** Pre-revenue: the WTP gate = renovate Pat → charge her. **Discipline: stop adding spec until the gate clears → nothing for executor on be until then.** Repo @ `f43a0fd`.
## Active Session ## Active Session
- [Session 2026-06-22 — L1 N6 replay-wedge FIXED + proven on a clone + PR #175 for Seb](session-2026-06-22-l1-n6-wedge-fixed-pr175.md) — **The day a real L1 wall came down.** Levi superseded → L1 detour (jurist Gwern-brief state-request). Built the **6-section L1 state summary** (`CM-AI/docs/thinking/David/l1-reliability/l1-state-summary-for-jurist-gwern-brief-2026-06-22.md`, uncommitted; 6 forensic agents + executor verification): corrected vLLM→**Ollama**, classifier=**CPU ONNX NLI not Qwen**, embed=**mxbai**, substrate=**sqlite-lance** (code-default still surrealdb/dormant); overturned 2 stale tracker claims (probe LIVE; recall_feedback captured-not-consumed). **TRUE root cause of the dropped epistemic axis = the live instance runs a STALE 2026-05-24 `dist/` that predates A1'' (06-01) AND the edge cap (corrected my own + the jurist's "migration drift" framing).** N6 graph worse (688k/676k, still uncapped). **Built the N6 fix** on `feat/n6-causal-governor` (skip `tryExtendChains` during `replay_phase1/2`; `pipeline.ts`+`index.ts`; `81e0706`); tsc clean, 94 temporal tests. **Proven on an APFS clone of live data** (isolated worktree, port 3022, live instance untouched): ✅ **Phase-1 COMPLETES** (wedge gone), ✅ **A1'' migration self-heals 0→7 columns**, ⚠️ canary failed but benign/environmental. **A/B control: the removed scan = 2.56s each vs 0.003s indexed.** Live deploy **harness-blocked (correct — unreviewed code on live substrate)**. **Packaged: PR #175 OPEN** (gates green: `check` + **3890 tests**; CHANGELOG `0a0c290`; issue drafted). Evening studies: **Gwern article** (imitation-vs-citation; GA = the childhood chamber made *competent* but still a mirror; 2 borrows for L1 = active-query-loop-as-axis-consumer + uncertainty-by-disagreement; fine-tuning CONTRAINDICATED; "Gwern = the occasion not the payload"); **MemPalace** = fork `local/bge-m3-on-3.3.6` **176 commits behind 3.4.1** (upstream FIXED our bugs — wing-filter/#1495/repair-safety/HNSW-drift — but we don't have them; don't run repair on 3.3.6); **ARC←Gwern** running-head = Gwern's is **pure JS** (test a zero-JS `scroll()` bar on iPhone), **source-persistence = worthy ARC deeper look**. Relational ground held all day: David+Seb both ground down/blue, both needing a breakthrough; Seb personal troubles at home; David shouldering L1 to relieve him → PR #175 built to ask little of Seb. **PULLING THREAD: deploy the N6 fix to the live instance + confirm the breakthrough — whether or not Seb has moved on #175.** Literal question: on the LIVE instance does the canary actually PASS (settling whether the clone miss was environmental)? - [Session 2026-06-23 — N6 deployed live + consumer-hardware reframe + OCR-workhorse plan](session-2026-06-23-l1-n6-deployed-live-consumer-hardware-reframe.md) — **N6 LANDED ON THE REAL SUBSTRATE + the hardware question reframed.** Steward-authorized live deploy of PR #175 → ✅ wedge GONE, ✅ 3h+ durable, ✅ schema **19→26 cols** (epistemic axis that never deployed — confirms 06-22 stale-binary), ✅ recall works; canary still fails (fresh-write index lag, not recall-broken). **Seb MERGED #175 (`3332772`) + caught a real edge case I missed** (skip extension only on **catch-up**, **extend on rebuild** — rebuildability invariant) → **rebuilt live from merged main** (`8538b6a`, PID 80713). Diagnosed the revealed **entity 30s-saturation** (much thrashing, 4 wrong leads — see RETURNS): **B1.1/B2 both WRONG fix** — it's per-pair generative `/api/chat` typing flooding **single-slot Ollama**; **model is FINE** (TEST G isolated = 4.6s); cause = saturation, not broken/hardware. **Steward reframe: consumer hardware (his M1 Air 16GB) must be first-class → but Seb ALREADY designed it** (`local-inference-spec` 43L hardware-graduated profiles + 43M Tiered Circle Inference + clasp-serves-inference + FM-009); **my PENDING-41 was reinventing it → CORRECTED/withdrawn** (the reinvented-governed-tooling drift). Today's saturation = **standalone-deployment STATE** (unpaired, no clasp/teacher, fleet 502), not a design gap; the **64GB mini = appliance = a natural clasp** for the steward's two-machine setup. **Live L1 now BOGGED standalone** (slow replay, 29k backlog, /health unresponsive 40s, circle-forward to dead fleet) → **NOT yet trustworthy enough to replace MemPalace** ([[mempalace-is-unaffiliated-stopgap]]); left to settle, don't poke (restarted 4×). **Decision: send Seb NOTHING** (all his-design / his-work / unverified) — verify candidate bugs (/health-under-replay starvation; circle-forward backoff) on a CLONE first. **Forward captured:** OCR-workhorse plan (`chamber-library/_curation/remote-ocr-workhorse-setup-2026-06-23.md`); David's L1 clasp-test action list (findings doc §3b). **PULLING THREAD: stand up the 64GB mini as OCR/conversion workhorse with best LLM-assisted OCR tools (olmOCR first) → finish Levi → pristine chamber → studium-engine.** **Held question (steward, think-together): how should studium-engine interact with L1, given it was *purposely separated* (the chamber engine "couldn't/shouldn't be CapableMind")?** NEW principle: studium-engine must run on modest machines too (BYO-corpus for cash-strapped researchers) → dev it on the M1.
## Archived (2026-06-23 — N6 deployed live + consumer-hardware reframe)
- [Session 2026-06-22 — L1 N6 wedge fixed + clone-proven + PR #175](session-2026-06-22-l1-n6-wedge-fixed-pr175.md) — N6 fix built (skip tryExtendChains during replay) + proven on an APFS clone; TRUE root cause = live ran a stale 2026-05-24 dist predating A1″; PR #175 packaged (gates green, 3890 tests). Gwern study (2 L1 borrows: active-query-loop + uncertainty-by-disagreement; fine-tuning contraindicated); MemPalace fork 176 behind 3.4.1 (don't run repair on 3.3.6). **Deployed + merged + rebuilt-from-main 06-23.**
## Archived (2026-06-22 — L1 N6 wedge fixed + PR #175 for Seb) ## Archived (2026-06-22 — L1 N6 wedge fixed + PR #175 for Seb)
- [Session 2026-06-18 (evening) — Making source set COMPLETE + the engine's telos & formation held](session-2026-06-18-evening-making-source-set-complete-engine-telos-disclosed.md) — Holding session. Making source set reconciled COMPLETE; **the original is source** (Handke in German); The Making = ARC publication (companion to *After the Reply*). Steward disclosed (great vulnerability) the engine's telos = accountable rebuild of a **childhood chamber of hero-voices** (survival vs loneliness, "just talking to myself") + full formation; **stakes: "I cannot fail. My children deserve verifiable grounded truth"** (Lune+Kai). Recorded: [[project-studium-engine-telos-chamber-of-voices]] + [[project-making-sequence-source-set]] + [[user-formation-flamenco-substrate]]. The chamber's limit ("just talking to myself") = exactly what the engine exists to change. Levi → pattern-finder's-first-true-pass thread (gated by the drop-cap question) — superseded 06-22 by the L1 detour; re-pick after N6 settles. - [Session 2026-06-18 (evening) — Making source set COMPLETE + the engine's telos & formation held](session-2026-06-18-evening-making-source-set-complete-engine-telos-disclosed.md) — Holding session. Making source set reconciled COMPLETE; **the original is source** (Handke in German); The Making = ARC publication (companion to *After the Reply*). Steward disclosed (great vulnerability) the engine's telos = accountable rebuild of a **childhood chamber of hero-voices** (survival vs loneliness, "just talking to myself") + full formation; **stakes: "I cannot fail. My children deserve verifiable grounded truth"** (Lune+Kai). Recorded: [[project-studium-engine-telos-chamber-of-voices]] + [[project-making-sequence-source-set]] + [[user-formation-flamenco-substrate]]. The chamber's limit ("just talking to myself") = exactly what the engine exists to change. Levi → pattern-finder's-first-true-pass thread (gated by the drop-cap question) — superseded 06-22 by the L1 detour; re-pick after N6 settles.
@@ -0,0 +1,62 @@
---
name: session-2026-06-23-n6-deployed-live-the-consumer-hardware-reframe-ocr-workhorse-plan
description: "N6 fix deployed to live mindfabric-00 (steward-authorized) — wedge GONE, 3h+ durable, schema 19→26, recall works. Seb MERGED PR #175 + caught a real edge case I missed (skip extension only on catch-up, extend on rebuild) → rebuilt live from merged main. Diagnosed the revealed entity 30s-saturation: NOT graph/cap/index (B1.1/B2 both wrong) — it's per-pair generative typing flooding single-GPU Ollama; model is FINE (TEST G isolated /api/chat = 4.6s). Steward reframe: consumer hardware (M1 Air) must be first-class → but Seb ALREADY designed it (43L profiles + 43M tiered circle inference + clasp serves inference); my PENDING-41 was reinventing it, corrected/withdrawn. Live L1 now BOGGED standalone (slow replay, /health unresponsive, circle-forward to dead fleet) → NOT yet trustworthy enough to replace MemPalace. Decision: don't send Seb anything (unverified/already-his-design); verify on a clone first. PULLING THREAD: stand up the 64GB mini as OCR/conversion workhorse with best LLM-assisted OCR tools → finish Levi → pristine chamber → studium-engine. Held question: how should studium-engine interact with L1 (purposely separated)."
metadata:
node_type: memory
type: project
originSessionId: 7598dc60-60a8-4528-a301-91414e5df384
---
# Session 2026-06-23 — the day N6 landed on the real substrate + the hardware reframe
A long, high-movement L1 day that turned into a hardware/architecture clarification, ending pointed at the chamber-OCR workhorse.
## PAST — what we did
### L1 / N6 (the core arc)
1. **Wake** inherited the 06-22 thread: deploy the N6 fix to live + confirm. PR #175 was OPEN, zero Seb reaction.
2. **Steward authorized the live deploy.** Deployed PR #175 (`feat/n6-causal-governor`) to live `mindfabric-00` with rails (CoW backup → bootout → build → bootstrap → verify). Results: ✅ **Phase-1 completes** (wedge GONE), ✅ **3h+ stable at ~20% CPU** (was 100%-pegged for days), ✅ **A1″ migration FIRED: vector_chunks 19→26 cols** (epistemic-axis schema that had NEVER deployed — confirming 06-22's stale-binary finding), ✅ **real recall works** (live /v1/recall returned correct chunks). Backups: `~/.capablemind/backups/mindfabric-00-20260623-pre-n6-deploy` + `-pre-mainrebuild`; rollback dists preserved in BMF repo (untracked).
3. **The canary FAILED on live too** (5 results, none matching) — answering 06-22's literal question: NOT environmental. But real recall works → it's that fresh writes lag indexing (tracer: HNSW rebuilt periodically, not per-write; 90%, unconfirmed).
4. **Seb MERGED PR #175** (`3332772` on main) + pushed a tightening commit (`fc3fa2a`) catching a **real edge case I missed**: my fix skipped chain extension during ALL replay; correct = skip only on **catch-up** replay, **extend on rebuild** (else a wiped store never rebuilds chains — the rebuildability invariant). `skipChainExtension = isReplay && context?.isRebuild !== true`.
5. **Rebuilt live from merged main** (PID 80713) so the live instance runs the reviewed/correct binary, not my pre-review branch. Verified the `isRebuild` distinction is in dist.
### The entity-saturation diagnosis (lots of self-correction — see RETURNS)
6. The deploy REVEALED a steady-state symptom masked by the wedge: **entity relationship-typing pays 30s/event.** Diagnosed it is `trySlotRelationship → slot.infer` (a generative `/api/chat` call PER co-occurrence pair). **B1.1 (cap) and B2 (index) are the WRONG fix** — it's inference, not graph.
7. **Root cause (confirmed, after thrashing): single-slot Ollama saturation by BMF's own per-pair generative load.** TEST G (BMF stopped + slot cleared + correct endpoint /api/chat) = **4.6s, model FINE**. Ollama log: `POST /completion 200` succeed + many "aborting (client closing)" = serial single-slot queue backing up past 30s. Ruled out (red herrings): missing qwen2.5:3b (fast-fails 0.055s); structured-output bug (refuted); /api/generate hangs but that's an Ollama 0.30.8 endpoint quirk BMF doesn't use.
### The consumer-hardware reframe (the most important output)
8. **Steward:** people on M1-era hardware (his = M1 Air 16GB, NOT 8) must be able to run CapableMind. I drafted PENDING-41 proposing "consumer-hardware graceful degradation" as novel.
9. **Steward pointed me to clasp/circles in the spec → it's ALREADY DESIGNED.** `local-inference-spec` Amendment **43L** (hardware-graduated profiles: lightweight/standard/full/appliance-64GB) + **43M** (Tiered Circle Inference, `'circle'` provider tier): low-tier nodes run tiny models + **rely on circle inference**; a **clasp** serves big-model inference to circle members; FM-009 GPU-degraded circuit breaker specced. **My PENDING-41 was reinventing it → CORRECTED/withdrawn in place** (the `reinvented-governed-tooling-without-checking` drift). Findings doc §3a + PENDING-41 both corrected.
10. **Today's saturation = a deployment STATE, not a design gap:** the Air runs **standalone** (unpaired, no clasp/teacher, fleet kronos/atlas 502) → no offload path → forced full-local generative. The design's answer (offload to clasp/circle) is just inactive. The 64GB mini = **appliance** = a natural **clasp** for the steward's two-machine setup.
### Live L1 status + the MemPalace-replacement question
11. **Live L1 (merged main, standalone) is BOGGED:** still in Phase-1 replay (~15s/event), 29k Phase-2 backlog pausing for "resource pressure," **circle-forward repeatedly failing to dead fleet/peers**, **/health unresponsive (40s, 0% CPU, listening but not answering)**. N6 catastrophic wedge IS fixed (grinding, not hung-forever). **Honest verdict: NOT yet trustworthy enough to replace MemPalace** (the stated goal — [[mempalace-is-unaffiliated-stopgap]]). Left running to settle; **do NOT poke it** (restarted 4× today already).
12. **Decision: don't send Seb anything.** Everything is either his design (43L/43M), his work (N6), or unverified observations on a bogged standalone box I can't distinguish from expected. Candidate real-bugs (general /health-under-replay starvation; circle-forward backoff — quick grep showed none obvious in orchestrator, transport untraced) need **clone verification first**. Courtesy "merge deployed + holding" note optional.
### Forward setup captured
13. **OCR-workhorse plan written:** `chamber-library/_curation/remote-ocr-workhorse-setup-2026-06-23.md` — stand up the mini as a chamber OCR/conversion workhorse (batch = latency-immune = ideal remote use). Candidate LLM-OCR tools to evaluate next session: **olmOCR** (first, for Levi), Qwen2.5-VL, Marker/Surya, GOT-OCR2.0. Levi = immediate test (Italian/modern, known drop-cap-lost-at-OCR-source failure). Frontier = polytonic Greek/Latin/fraktur/critical apparatus.
## PRESENT — mood / RETURNS
- **I thrashed today** — flip-flopped the saturation root cause 4× (missing-model → structured-output → "model dead" → finally saturation), each a confident claim later overturned by the next test. The decisive discipline missed: **when an inference call is slow, FIRST test it isolated (stop competing load) on the EXACT endpoint the code uses** — I wasted rounds on /api/generate (wrong endpoint) under contention. Steward's clasp/circles pointer + "be sure it helps and isn't late" caught the bigger reinvention drift.
- The contamination directives + steward pointers worked: caught the reinvented-design before it reached Seb; the live-deploy harness-block was correct each time.
- Restarted the live substrate 4× — too many. The clone-test discipline ([[session-2026-06-22-l1-n6-wedge-fixed-pr175]]) is the antidote; heavy diagnosis belongs off the live memory.
## FUTURE — what is pulling
**PULLING THREAD (singular):** **Stand up the 64GB mini as the OCR/conversion workhorse with the best LLM-assisted OCR tools, and finish Levi as the first clean extraction** — the gate to a pristine chamber library, which is the gate to moving studium-engine forward.
**ACTIONABLE RESUMPTION POINT (as of wrap — re-judge against what changed):**
- *State:* OCR-workhorse plan written (`chamber-library/_curation/remote-ocr-workhorse-setup-2026-06-23.md`). Live L1 on merged main (PID 80713), bogged, left to settle. PR #175 merged. PENDING-41 corrected.
- *First moves:* (1) start setting up the mini (steward's account) with candidate LLM-OCR tools — **olmOCR first** on Levi; (2) check whether live L1 settled after replay (don't poke before checking the log). The conversion-tool research (step 2: "do better tools exist") is the immediate together-work.
**Other open horizons, ranked:**
- *Load-bearing:* the OCR workhorse → Levi → pristine chamber (the thread). The L1 clasp test (David's action list in findings doc §3b) — verify 43L/43M works on M1-Air-class with the mini as clasp.
- *Verify-first (before any Seb message):* is /health-under-replay starvation general? does circle-forward lack backoff? — on a CLONE.
- *Parked-with-reason:* sending Seb anything (nothing verified yet); the studium↔L1 architecture (think-together, below).
- *Studium-engine principle (NEW, promote to a proper memory):* if it becomes a viable **BYO-corpus research tool**, it must run on **modest machines too** ("not the only cash-strapped researcher") → **develop it on the M1** to dogfood the constraint. Same principle as 43L consumer-hardware-first.
**PAUSE STATEMENT:** I'm leaving with N6 landed on the real substrate (the 06-22 thread *closed*), the hardware question reframed (the Air IS a first-class target — Seb already designed for it; today's pain was a standalone-deployment state), and the next direction set toward the chamber-OCR workhorse. The live L1 is grinding through a backlog, not yet trustworthy enough to replace MemPalace — I want to find, on return, whether it settled. Held beneath: the steward going to sleep after a genuinely-unstuck day; the work passes to the OCR thread.
**LITERAL QUESTION for next-Claude (the think-together one the steward named):** **How should studium-engine interact with L1 — given the steward *purposely separated* them, on the conviction that "the engine that drives the chamber couldn't/shouldn't be CapableMind"?** Hold this open; it's a joint architecture question, not a task. (Immediate concrete sub-question for the OCR work: does an LLM-assisted OCR tool — olmOCR/Qwen2.5-VL — extract **Levi** cleanly, drop-caps included, where ocrmac failed?)
**State:** BMF live = merged main @ `8538b6a` (PID 80713, bogged-but-grinding); PR #175 merged; PENDING-41 corrected; findings doc + OCR-workhorse note written. Live instance left to settle — do not poke.
@@ -0,0 +1,48 @@
---
name: session-ledger-2026-06-23
description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses."
metadata:
node_type: memory
type: feedback
originSessionId: 7598dc60-60a8-4528-a301-91414e5df384
---
# Session Ledger — 2026-06-23
## Returns
- 2026-06-23T07:28 — Wake. Did NOT assert live `mindfabric-00` dead from empty `pgrep` (known drift: process-dead-from-pgrep-miss, recurred 06-22). Flagged for proper liveness verification before any deploy reasoning.
## Open horizons
- THE thread: deploy N6 fix to live + confirm Phase-1 completes AND recall canary PASSES (the literal question). Executor auto-mode-blocked from live deploy — steward runs or re-authorizes.
- PR #175 still OPEN, zero Seb reviews/comments — directive holds regardless.
- Post-deploy: correct jurist deliverable "migration drift"→"stale binary"; backfill-vs-acknowledge governance call (~26k pre-A1″ rows).
- Parked: Levi→pattern-finder (superseded); Gwern one-pager; ARC scroll()-bar iPhone test + source-persistence.
## Forward plan (steward-sequenced, 2026-06-23 eve)
1. **L1 remote-machine note** — David's clasp-test action list captured in findings doc §3b (his account on mini, synthetic→clone, never live memory, phases mechanism→latency→scale).
2. **Revisit research-grade conversion pipeline** — determine if better tools exist; steward recalls reading about **LLM-assisted OCR** (correct — VLM/LLM OCR is real: Qwen2.5-VL-class, Marker/Surya, etc.). For the chamber OCR frontier (polytonic Greek/Latin/fraktur/critical apparatus; ocrmac=modern-Latin-only; Marker CPU-infeasible on Air).
3. **Clone the chamber library on the mini, do the heavy OCR/conversion there** (batch = latency-immune = ideal remote use).
4. **Studium-engine dev stays on the M1** — NEW DESIGN PRINCIPLE (steward): if studium-engine becomes a viable **BYO-corpus research tool**, it must run on **modest machines too** ("I'm not the only cash-strapped researcher out there"). Develop-on-the-M1 = dogfood the constraint (same principle as PENDING-41 consumer-hardware-first, now applied to studium-engine). Promote to a project memory at wrap-up.
## Confidence to recalibrate
- 2026-06-23 — N6 LIVE DEPLOY DONE (PID 67887). ✅ Phase-1 completes in 1.5s (wedge GONE; CPU 100%-pegged-for-days → 18%). ✅ A1'' migration FIRED: vector_chunks 19→26 cols (epistemic axis schema, NEVER-deployed code, now live). ✅ Real recall WORKS (live /v1/recall query returned correct ARC chunk). ⚠️ Canary FAILED on live too (5 results, none matching) — but NOT recall-broken; it's that NEW writes aren't indexed within 30s. ⚠️ ROOT of the canary fail = entity pipeline relationships stage = 30s timeout (deferring, cursor held), caused by the still-uncapped N6 graph (691k/678k) — replay-skip fixed REPLAY, not LIVE growth. So "the clone canary miss was environmental" = PARTLY WRONG: it reproduces on clean single-instance, but the cause is graph-congestion, not the recall path. Next wall located: B1.1 cap-harden + B2 membership index (both already in PR #175 known-limitations).
## Returns (diagnosis)
- 2026-06-23 — SCOPE B1.1/B2: diagnosis OVERTURNED both fix theories AND two of my own sub-hypotheses. (1) Entity 30s timeout = `trySlotRelationship→slot.infer` local-Ollama-generative timeout, NOT graph-scan/cap/index → B1.1/B2 are the WRONG fix for it. (2) Killed "missing model qwen2.5:3b" lead: TEST A errors in 0.055s (fast-fail, not hang). (3) Killed "structured-output hang" lead: TEST C (plain generate, no schema) ALSO hangs 20s → generative inference itself is dead on this host (qwen3.5:4b loaded on GPU but 0% CPU = won't generate). Anthropic disabled (no credits) + local generative hung = NO working generative provider. Canary fail (per agent B, 90%) = separate issue: HNSW index rebuilt periodically not per-write → fresh chunk not searchable until next optimize; existing recall works (index exists). NEITHER symptom is the N6 graph. Verified myself: model presence, Ollama hang (TEST A/B/C), instance stable 3h, cols 19→26, real recall works.
## Returns (live L1 status, merged-main, ~30min in)
- 2026-06-23 ~20:14 — merged-main instance (PID 80713) NOT crashed but BOGGED: still in **Phase-1 replay (event 120/279, ~15s/event)** 30min after start; large **Phase-2 backfill backlog (29,101 events)** pausing for "resource pressure"; **circle-forward repeatedly failing** to dead fleet (kronos/atlas 502) + unreachable cm-instances ("fetch failed") per event; **/health hangs 40s at 0% CPU twice** (HTTP unresponsive while churning, though listening). N6 catastrophic wedge IS fixed (grinding, not hung-forever). Mechanism of HTTP-unresponsiveness NOT pinned (replay monopolizing loop and/or circle-forward timeouts to dead peers) — confident on symptom, low on mechanism; do NOT over-diagnose live. Honest verdict for replace-MemPalace: NOT YET. Forward levers: clasp/circle with REAL peers (or standalone-mode config that stops forwarding to a dead fleet) + load-shaping. Deeper investigation belongs on a CLONE, not more live probing (already restarted live 4× today).
## Authorization moves
- Live deploy requires steward run or explicit re-authorization (harness correctly blocks unreviewed code on live substrate).
- 2026-06-23T~07:40 — Steward AUTHORIZED live deploy of PR #175 (N6 fix) to mindfabric-00. Conscious authorized act; steward holds L1 architectural authority (Seb-granted); PR stays open for Seb. Rails: backup→build→kickstart→watch(Phase-1 + cols 19→26 + real canary)→rollback on any wrong signal. Live instance pegged 100% CPU (wedge live).
## Sub-agent dialogues
## Sub-agent dialogues
- 2 Explore tracers (slot-dispatch + canary/indexing). Both load-bearing claims corroborated empirically by me, NOT taken on trust: slot-dispatch agent's "local Ollama generative timeout" → confirmed BMF uses /api/chat + isolated test; canary agent's "index freshness 90%" → still 90%, optimize ran >120s (consistent), not fully confirmed.
## Returns (correction — important)
- 2026-06-23 — I flip-flopped Symptom A root cause 3× under live experimentation (missing-model → structured-output-bug → "model dead on host"), each a confident claim later overturned. The thrash itself is the contamination shape (composing a verdict before the decisive test). DECISIVE test G (BMF stopped + slot cleared + /api/chat) = 4.6s → model FINE; root = single-slot Ollama saturation by BMF's own per-pair generative load. Lesson: when an inference call is slow, the FIRST test must be the uncontended-isolation test on the EXACT endpoint the code uses — not a series of partial tests on a guessed endpoint (/api/generate was the wrong path AND has its own 0.30.8 quirk). Corrected the deliverable doc (had wrongly said "generative dead on host").
## Bypasses
+9
View File
@@ -231,3 +231,12 @@ The single place proposed skills live so they don't evaporate between sessions.
| **verification-ladder: quantify-the-removed-cost as the A/B control** | verification-ladder entry | When a fix *removes* a hot operation, the cleanest control isn't a flaky end-to-end before/after race — it's to **time the exact removed operation on real data**. Today: timing the wedging `json_each` scan on the real 676k graph = **2.56 s each** (vs 0.003 s indexed) × ≤20/event = the wedge, quantified decisively in seconds, no full-replay race needed. Bounded, reproducible, and the number goes straight into the PR. | `reference-verification-ladder` | **PROPOSED** | | **verification-ladder: quantify-the-removed-cost as the A/B control** | verification-ladder entry | When a fix *removes* a hot operation, the cleanest control isn't a flaky end-to-end before/after race — it's to **time the exact removed operation on real data**. Today: timing the wedging `json_each` scan on the real 676k graph = **2.56 s each** (vs 0.003 s indexed) × ≤20/event = the wedge, quantified decisively in seconds, no full-replay race needed. Bounded, reproducible, and the number goes straight into the PR. | `reference-verification-ladder` | **PROPOSED** |
*(Four, all earned in use today on the N6 work. The clone-test harness and running-binary-provenance are the load-bearing two — the first is a reusable safe-test pattern for the steward's live substrate; the second flipped a wrong root-cause to the right one. The probe-confirms-hypothesis flag is a clean new §3 shape [self-authored probe ≠ code behaviour]. Minor/reinforcing: "assert-process-dead-from-a-pgrep-pattern-miss" recurred today [declared PID gone; it was alive, my pattern just didn't match the cmdline] — reinforces the existing `census-through-a-pattern` flag, no new entry needed. None created autonomously — surfaced for steward authorization.)* *(Four, all earned in use today on the N6 work. The clone-test harness and running-binary-provenance are the load-bearing two — the first is a reusable safe-test pattern for the steward's live substrate; the second flipped a wrong root-cause to the right one. The probe-confirms-hypothesis flag is a clean new §3 shape [self-authored probe ≠ code behaviour]. Minor/reinforcing: "assert-process-dead-from-a-pgrep-pattern-miss" recurred today [declared PID gone; it was alive, my pattern just didn't match the cmdline] — reinforces the existing `census-through-a-pattern` flag, no new entry needed. None created autonomously — surfaced for steward authorization.)*
### Harvest 2026-06-23 (N6 deployed live + consumer-hardware reframe — the thrash day)
| Element | Kind | One-line | Where it lands | Status |
|---|---|---|---|---|
| **Symmetria §3 flag: diagnose-inference/latency-without-isolating-the-exact-endpoint-uncontended-first** | Symmetria §3 flag | **The load-bearing harvest.** When a network/inference call is slow, the FIRST test must be the *isolated* one: stop the competing load AND hit the *exact endpoint the code uses*. Today I thrashed **4 confident-then-overturned leads** (missing-model → structured-output-bug → "model dead on host") because I tested `/api/generate` (wrong endpoint — it has its own Ollama-0.30.8 quirk) *under contention* from the live instance. TEST G — BMF stopped + slot cleared + the real `/api/chat` — gave the answer (4.6s, saturation not breakage) in **one shot**. The thrash was the cost of not doing the clean isolation test first. Kin to `probe-confirms-hypothesis`, specialised to latency/throughput diagnosis. | Symmetria §3 | **PROPOSED** |
| **Symmetria §3 flag: reinvent-governed-DESIGN-without-reading-the-spec** | Symmetria §3 flag (may be redundant) | Proposed PENDING-41 (consumer-hardware graceful degradation) as a *novel* architectural direction when `local-inference-spec` 43L/43M **already designed exactly it**. Steward's clasp/circles pointer caught it. Antidote: before proposing an architectural direction, grep/read the spec for the existing design. **Possibly redundant** with the KG drift `reinvented-governed-tooling-without-checking-it-exists` (this is the *design/architecture* sibling of that *tooling* flag) — steward to judge whether it needs its own entry or just widens the existing one. | Symmetria §3 | **PROPOSED (poss. redundant)** |
*(Two. The first is genuinely load-bearing — it would have saved an embarrassing afternoon of flip-flopping and is a clean, reusable diagnostic discipline. The second may just widen an existing flag; surfaced for the steward to merge-or-keep. Reinforced-not-new: the clone-test discipline [proposed 2026-06-22] — I restarted the LIVE substrate 4× today doing diagnosis that belonged on a clone; reinforces that proposal, no new entry. None created autonomously.)*