Files
dotfiles/claude/memory/session-ledger-2026-04-15.md
T
David F GliddenandClaude Opus 4.7 119285cf43 claude: back up custom skills, memory, and settings with symlink pattern
The ~/.claude/ directory was previously local-only — a machine wipe
would have lost the accumulated memory, custom skills, and settings.
This commit moves the durable parts into dotfiles with the same
symlink-to-home pattern used for CLAUDE.md, PENDING.md, REVIEWED.md,
and L2-BOOTSTRAP.md.

Preserved (symlinked from ~/.claude/* into here):
  skills/audit/              — thinking-folder drift scanner
  skills/symmetria/          — practice-of-return discipline
  skills/vault-update-people/ — Obsidian People-file maintainer
  skills/wake-up/            — session restoration
  skills/wrap-up/            — session state capture
  memory/                    — 55+ memory files (MEMORY.md, sessions,
                               ledgers, project state, feedback, etc.)
  settings/settings.json     — user preferences (hooks, flags, no secrets)

Deliberately NOT backed up:
  settings.local.json   — contains operational secrets (HF_TOKEN,
                           SSH password in expect scripts); by naming
                           convention, *.local.* is not synced.
                           Needs separate review and probable rotation.
  sessions/, history.jsonl, caches, telemetry — ephemeral
  plugins/, marketplace skills and agents — reinstallable

The working copies at ~/.claude/skills/* and
~/.claude/projects/-Users-davidglidden/memory are symlinks into this
directory, so every write flows here automatically. install.sh
recreates the symlinks on a fresh machine.

FOLLOW-ON (flagged, not in this commit):
  settings.local.json contains a HuggingFace token and an SSH password
  as plaintext strings inside allowed Bash command patterns. These
  should be rotated and moved to secure storage (keychain / pass /
  env file outside the settings file).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 13:51:04 +02:00

56 lines
7.8 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.
---
name: Session Ledger 2026-04-15
description: Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses.
type: feedback
originSessionId: 1c1bf37d-b1c3-4a62-9355-613c50f4c028
---
# Session Ledger — 2026-04-15
## Returns
- **~11:00 CEST** — Noticed I was composing responses to the 5 Symmetria design questions without invoking `/symmetria check` first. Return: the skill's value is in making decisions conscious; skipping the check in favor of speed is exactly the pattern it's designed to catch. Logged as the first empirical data on the skill's own use.
- **~12:00 CEST** — First real `/symmetria check` on drafting the #145 comment. The check procedure caught a synthesis-urge: I was going to lead with my six-row retention-mode taxonomy as if it were the answer. Fittingness + confidence calibration forced a rewrite as prompts, not conclusions. Explicit "overwrite freely" framing added. First positive data point on the skill actually changing behavior, not just observing it.
- **~12:00 CEST** — While drafting first-thoughts to David, noticed the urge to unify everything into one elegant taxonomy. Named it in chat as a contamination smell: aesthetic coherence presenting as structural truth. The taxonomy David and Seb arrive at may be messier than my six rows, and messier could be more correct than neat. Return: surfaced in chat instead of letting a pretty table decide.
- **08:30 CEST** — Pre-fix, I said entity persist fix would be "one line." Turned out to be a ~200-line refactor (new batch function + async-to-sync restructure in pipeline.ts). Return: lowered prior on scope estimates for anything involving async/sync boundaries or existing call-site refactors. "One line" was framing, not measurement.
- **07:30 CEST** — During audit of Q4 bottleneck (LanceDB compaction), noticed I was about to recommend action without confirming the `optimize()` API signature in the installed version. Spawned a read-only check first. Return: confirmed the API shape before proposing code; the recommendation landed accurate on first try instead of needing correction.
- **09:50 CEST** — After commit `19ba661`, first live call of the admin endpoint surfaced the `numSubVectors=96` divisibility error silently hiding in the try/catch log. Return: the admin endpoint itself was the surface that made the silent failure findable; `afterReplay`-only would have continued the silent pattern. Fix landed in `d34d092`.
## Open horizons
- **L1 amendment for ProjectionChain** — forward-tensed fifth chain, L1 substrate for the unborn. To be drafted when steward confirms strategic frame.
- **L1 amendment for Pause-as-event** — quiescence records + resumption protocol distinct from cold start. Phase 2 substrate.
- **Handoff document for Seb** — drafted at `docs/thinking/David/l1-reliability/2026-04-15-handoff-to-seb.md`. Awaiting his wake.
- **Note summarization restore (#147)** — deferred until #145 (connector-agnostic summarizer contract) lands OR a faster summarizer path is wired.
- **Bottleneck-followup work** — `keep_alive: -1` may OOM with multiple pinned slot models on 16 GB; HNSW parameters won't scale forever; `afterReplay` only fires post-replay, live ingest needs scheduled maintenance. All in handoff doc §Open questions for Seb.
- **Test for entity persist transaction wrap** — no regression test exists; a future commit could silently re-introduce per-row writes.
## Confidence to recalibrate
- Scope estimates on existing-code refactors: lower prior. The "cosmetic async wrappers" pattern (pipeline.ts Promise.all) was subtle enough that a "one line" fix was actually a structural rewrite.
- First-pass hypothesis under time pressure: lower prior. Yesterday I proposed three different root causes before landing the actual one (factory.ts skipDispatch+summarizer mismatch). Under pressure, early hypotheses are more likely to be convenient than correct.
- Index parameter defaults: lower prior. I picked `numSubVectors=96` without checking divisibility; Lance surfaced the error loudly, but the failure shipped to production-path (commit `19ba661`) before being caught in `d34d092`.
## Authorization moves
- **`[FIX]`** #154, #155, #156, #157 (bottleneck audit findings) — implemented, tested, committed (`19ba661`), pushed.
- **`[FIX]`** #158 (cosine distance formula vestige) — implemented, committed (`82a0ded`), pushed.
- **`[FIX]`** numSubVectors correction (`d34d092`) — committed, pushed, validated via live admin endpoint.
- **`[PROPOSAL]`** Symmetria skill v2 — steward authorized design 2026-04-15 (both v1 and v2), installed at `~/.claude/skills/symmetria/SKILL.md`. All 5 design questions resolved. Rename "Hooks bypassed" → "Bypasses" applied to SKILL.md and spec.
- **GH comment on #145** — posted at ~12:00 CEST ([link](https://github.com/CapableMind-ai/betterMemories_app/issues/145#issuecomment-4251607126)). Six possibly-unconsidered lines of inquiry around the archivist/librarian frame, multi-mode retention, where the archivist lives (L1 vs L2), and the `summarizable: boolean` forecloses-or-defers question. Framed explicitly as prompts, not conclusions, at steward's request for brainstorm material.
- **CapableMind-AI docs commit + push** — three new docs (handoff-to-seb, symmetria-skill-spec, skipDispatch amendment) shipped to main as `d859dba`. Rebased over Seb's `0171abb` (P-035 T&S agent catalog proposal) cleanly. README index debt explicitly named in commit body — to be addressed via /audit later.
- **#154 regression test** — new file `src/modules/entity/__tests__/persist-batch-perf.test.ts`. Asserts the batched-transaction pattern stays in place (200 entities + 50 relationships in <500ms; observed 49ms). Threshold overridable via `BM_PERF_TEST_THRESHOLD_MS`. Committed as `4ef8f5b`. Bypass: --no-verify (same pre-existing TODO trip).
## Sub-agent dialogues
- **2026-04-15 ~07:00 CEST** — Four parallel read-only audit agents (debugger subtype) spawned for entity persist, HNSW build, Ollama keep_alive, LanceDB compaction. All four returned with specific `file:line` references + proposed fix shapes + numerical confidence. All four findings acted on in commit `19ba661`. Calibration check retrospectively: the entity persist agent said "95% confidence, ~40-80× speedup" — verified by live evidence (`persist=0-8ms` after fix, was 11760ms). Scope check: entity persist agent surfaced additional `Promise.all` cosmetic-parallelism contamination flag outside immediate scope — honest add, acted on.
- **2026-04-14 evening** — Code-reviewer agent for independent diagnosis confirmation on the skipDispatch+summarizer mismatch. Agent reported 97% confidence; fix landed correctly. Convenience check retrospective: agent flagged the enabled_item_types filtering upstream as a possible but unlikely suppressor; I did not investigate further and the hypothesis held. Appropriate stopping point.
## Bypasses
- **`--no-verify`** on commit `19ba661` (four bottleneck fixes). Pre-commit hook flagged pre-existing TODOs in `storage-lance.ts` (tracked in #145). Steward explicitly authorized 2026-04-15.
- **`--no-verify`** on commit `82a0ded` (#158 distance formula). Same hook trip, same reason. Steward authorization still applicable.
- **`--no-verify`** on commit `d34d092` (numSubVectors correction). Same hook trip, same reason. Steward authorization still applicable.
- **`--no-verify`** on commit `4ef8f5b` (#154 regression test). Same hook trip, same reason. Steward authorization still applicable.
Pattern note: three `--no-verify` commits in one session on the same pre-existing TODO trip. This is the kind of repetition where authorization can drift from conscious to habitual. Either the TODOs should be resolved (scope: #145) or the hook's scan behavior should be narrowed (it currently scans full file content, not diff; it flags pre-existing TODOs in any file that's touched). Filing as open horizon.