This SOUL.md is the Bitcoin inscription version, not the narrative
identity document. Adding an HTML comment header to clarify.
The canonical narrative SOUL.md lives in timmy-home.
See: #388, #378
Replaces the subprocess call to mempalace CLI binary with direct SovereignStore import. L1 palace search now uses SQLite + FTS5 + HRR vectors in-process. No ONNX, no subprocess, no API calls.
Removes: import subprocess, MEMPALACE_BIN constant
Adds: SovereignStore lazy singleton, _get_store(), SOVEREIGN_DB path
Closes#383
Depends on #380 (sovereign_store.py)
Implements the missing pieces of the MemPalace epic (#367):
- sovereign_store.py: Self-contained memory store replacing the third-party
mempalace CLI and its ONNX dependency. Uses:
* SQLite + FTS5 for keyword search (porter stemmer, unicode61)
* HRR phase vectors (SHA-256 deterministic, numpy optional) for semantic similarity
* Reciprocal Rank Fusion to merge keyword and semantic rankings
* Trust scoring with boost/decay lifecycle
* Room-based organization matching the existing PalaceRoom model
- promotion.py (MP-4, #371): Quality-gated scratchpad-to-palace promotion.
Four heuristic gates, no LLM call:
1. Length gate (min 5 words, max 500)
2. Structure gate (rejects fragments and pure code)
3. Duplicate gate (FTS5 + Jaccard overlap detection)
4. Staleness gate (7-day threshold for old notes)
Includes force override, batch promotion, and audit logging.
- 21 unit tests covering HRR vectors, store operations, search,
trust lifecycle, and all promotion gates.
Zero external dependencies. Zero API calls. Zero cloud.
Refs: #367#370#371
Implement 現地現物 (Genchi Genbutsu) post-completion verification:
- Add bin/genchi-genbutsu.sh performing 5 world-state checks:
1. Branch exists on remote
2. PR exists
3. PR has real file changes (> 0)
4. PR is mergeable
5. Issue has a completion comment from the agent
- Wire verification into all agent loops:
- bin/claude-loop.sh: call genchi-genbutsu before merge/close
- bin/gemini-loop.sh: delegate existing inline checks to genchi-genbutsu
- bin/agent-loop.sh: resurrect generic agent loop with genchi-genbutsu wired in
- Update metrics JSONL to include 'verified' field for all loops
- Update burn monitor (tasks.py velocity_tracking):
- Report verified_completion count alongside raw completions
- Dashboard shows verified trend history
- Update morning report (tasks.py good_morning_report):
- Count only verified completions from the last 24h
- Surface verification failures in the report body
Fixes#348
Refs #345
Daemon that monitors key services and restarts them automatically:
- Local: hermes-gateway, ollama, codeclaw-heartbeat
- Ezra: gitea, nginx, hermes-agent
- Allegro hermes-agent
- Bezalel: hermes-agent, evennia
- Max 3 restart attempts per service per cycle (prevents loops)
- 1-hour cooldown after max retries with Telegram escalation
- Restart log at ~/.local/timmy/fleet-health/restarts.log
- Modes: check now (--status for history, --daemon for continuous)
Fixes timmy-home#560
- Add Kaizen Retro to cron/jobs.json with explicit local model/provider
- Add Telegram message chunking for reports approaching the 4096-char limit
- Fix classify_issue_type false positives on short substrings (ci in cleanup)
- Add 28 unit tests covering classification, max-attempts detection,
suggestion generation, report formatting, and Telegram chunking