Hindsight: Migration Status

Level 2 (Topic). Parent hub: hindsight.

Live snapshot of the legacy-memory migration into the tazlab-common bank (CRISP project memory-migration-hindsight). The pod is up and serving recall; the migration itself is half done: the Mnemosyne corpus import is substantially complete, but chronicles, reports, and doctrine are not imported yet.

Scope of the Migration

Convert the legacy Mnemosyne semantic memory corpus (745 memories) plus memory-workspace chronicles, reports, and doctrine into the shared bank tazlab-common, under the protocols defined in Hindsight Architecture: mark-before-advance state, done = completed AND recallable.

Current State (import-state.json, verified 2026-09-10)

Imported — 754 documents

Source batchDone
session-2026-08-28 (deployment session memories)10/10
mnemosyne-corrected-2025-1217/17
mnemosyne-corrected-2026-014/4
mnemosyne-corrected-2026-0217/17
mnemosyne-2025-12 (B2)59/59
mnemosyne-2026-01 (B3)144/144
mnemosyne-2026-02296/296
mnemosyne-2026-03-08207/207
mnemosyne-new-sep0/3
Total done754

Not imported yet (backlog)

Backlog itemCountNotes
mnemosyne-new-sep3new September docs
Chronicle archives19memory workspace past/ cycles
Reports57milestone reports under SKILLS/memory/reports/
Doctrine69unset-timestamp timeless memories (system-state, debts, golden rules)

Directives (8 active) and the mental model tazlab-operating-doctrine are already live in the bank; the doctrine documents are the pending part.

Mnemosyne stays read-only until user sign-off. Its decommission is a separate future project.

TD-058: Date-Marker Corruption — Closed Permanently (2026-09-03)

  • Root cause: the writer’s bracket headers [YYYY-MM-DD - Title] (436 bracket + 12 colon markers across 224 unique docs in 11 batch files) inside batch contents were anchors hijacking both retain extraction and consolidation dating, producing false 2023/2024-dated units.
  • Fix: all 11 batch files sanitized in place (backups in web-research/batch-backup-20260903/, 0 non-content diffs, 0 leftover markers); sanitize_content() guard added to scripts/import_memory.py, scripts/import_adaptive.py, scripts/anomalies/close_anomalies.py (unit-tested 6/6) so any future import is protected. Full report: scripts/anomalies/td058-permanent-fix.md.
  • Re-retain (in progress): window 1 completed 23/224 docs (10 TD-058 docs first + 13 others; 4 docs in void — delete ok, retain hit 429). The window closed early because the daily embedding quota (1000 requests/day, shared free tier) was exhausted. Resume via scripts/anomalies/td058_restrain.py — self-healing: skips done docs, retries void ones, daily cap 140.
  • Verification (post window 1): 4,520 units; 0 residual 2023/2024-dated units; 0 marker literals in any unit text; 197 docs pending re-retain.

Residual limitation (TD-058, not corruption)

~22% of units (996/4,520) have occurred_start = null: the extractor assigns dates only to event-bearing text. The prescribed event-date-prefixed re-retain was piloted and measured ineffective (44%→43%, jitter), so the mass run was stopped. Additionally, auto-consolidation can re-derive stale dates from source-fact texts on dirty-flag passes (2 observations required a direct DB UPDATE to stabilize). This is a known temporal-recall limitation, tracked in the memory workspace debts register — not data corruption.

Remaining Known Issues

  • Bank mission is empty; source:report tag absent (reports not migrated yet — see backlog).
  • Empty document mne-8fa7583a (0 units, pre-existing); cosmetic.
  • list_documents ignores offset (only first 100 reachable) — upstream tooling bug, to report.
  • Second embedding-quota wall hit 2026-09-03 during the TD-058 re-retain window — reinforces the adaptive-pacing rule (see Architecture).

Next Steps

  1. Resume td058_restrain.py in the next embedding-quota window (197 docs pending).
  2. Import mnemosyne-new-sep (3 docs).
  3. Import chronicle archives (19), reports (57), doctrine (69, unset timestamp).
  4. User sign-off on recall quality → Mnemosyne decommission project.

See Also