Files
esh-pfi-infrastructure/persistent-memory.d/2026-08-03-worldtree-b168-384-385-arc.md
T
vh bc084edbee memory: snapshot for /clear — worldtree b168/#384/#385 arc complete
Collapsed the completed-arc bloat out of Current state / in-flight (line 125:
6487->1073 chars; runbooks moved to persistent-memory.d/2026-08-03-worldtree-b168-384-385-arc.md).
Added the 2026-08-03 arc Recent-decisions entry. Auto-archived 20 oldest
Recent-decisions entries (2026-07-08..07-14) to archival-memory.md (index 345->308
lines). Refreshed the b169-deploy watch, unpushed-count, and handoff.
2026-08-03 00:12:59 -07:00

4.3 KiB

Worldtree b168/#384/#385 arc — COMPLETE 2026-08-03. A long peer-driven arc across worldtree-dev / muninn-dev / mimir-dev / ratatoskr-dev, all on corviduo-dev's demo+personal instances. Sequence: providers.yaml boot-gate pre-sync → b168 deploy → DCC #384 reindex → round-2 full re-ingest → #381 restart → operator-approved production dedup sweep. Landed clean; three of MY foot-guns along the way, each caught + hardened into a fleet runbook rule (see Tried-and-abandoned: mv -t, docker exec -u 1000, shared-containerd race).

providers.yaml pre-sync (boot-gating config)

b168 (commit 293f8f3) added a summarization capability block that in-image agents/muninn/config.yaml references → boot-blocking if the host bind-mounted providers.yaml lacks it. Synced both hunks (summarization block + deep-reasoning desc) into demo+personal via deploy-wt-config; instance-configs commit 53349f8.

  • deploy-wt-config runbook: ~/development/worldtree-instance-configs/scripts/deploy-wt-config {diff|deploy|capture} <inst> --file providers.yaml (per-instance dirs demo/personal/pinned; deploy = host write + api/matrix restart + 90s health-gate + auto-rollback; diff/capture safe). demo+personal providers.yaml are byte-identical.
  • GOTCHAS: (1) an UNPUSHED source commit → git show <sha> 404s and a gitea raw?ref=<sha> silently falls back to the default branch; verify the commit exists (/git/commits/<sha>) before trusting a fetch, else ask the peer to paste hunks. (2) a peer's hunk paste may be mis-indented (8-space vs the block's 4-space) → invalid YAML; always YAML-validate after a paste-sourced edit.
  • Config-delta pre-sync rule (verified via docker inspect): worldtree containers bind-mount ONLY config/ host-side (/opt/worldtree-*/config/ → providers/model_roles/matrix/policies/defaults/env.public = the pre-syncable set); agents/ (schemas.yaml, prompts) + all code ship IN-IMAGE. So only a config/*.yaml change is boot-blocking-pre-syncable; an agents/-or-code delta needs NO host pre-sync (CI carries it). b169's schemas.yaml (#387) was correctly no-pre-sync.

#384 reindex + #381 restart + verify

DCC job mimir-6351554e8e8f. Reindex: sudo docker exec -u 1000 worldtree-personal-worldtree-muninn-1 python -m core.muninn --reindex <job> (⚠️ MUST -u 1000 — default-root writes contaminate the uid-1000 KB tree; see Tried-and-abandoned). Then #381 restart (stale-Chroma-client fix): sudo docker restart worldtree-personal-worldtree-api-1 (plain bounce, NO compose up / no image repoint) → healthz/readyz 200 ~25s.

  • Chroma-verify runbook: sudo docker exec -i <muninn> python - (MUST pass -i or stdin never reaches python -) → chromadb.PersistentClient('/data/kb/.chroma').get_collection('fiction').get(where={'job_id':<job>}, include=['metadatas']). Chroma persists at container /data/kb/.chroma = host volume worldtree-personal_worldtree-kb.
  • Retrieval-visibility check (NOT grounding — that's ratatoskr's): a Mimir session — admin token ~/.config/worldtree/personal-admin-token (wildcard scope) → POST /sessions (agent_id=mimir, record_tool_intermediates=true) → POST /sessions/{id}/messages (STREAMS SSE, not JSON) → parse SSE tool_result for search_library wing hits → DELETE session.

Production dedup sweep (operator-approved)

Deleted the 785 April-era DCC orphan rows (job_id=b59c147c5ce0, no wing/source_identity metadata → predate identity tracking) from the main collection. Supervised protocol: read-only verify count == 785, back up all rows (ids+docs+embeddings) to corviduo-dev:/tmp/main-sweep-backup-b59c147c5ce0.json (reversible), main.delete(where={job_id}) (assert target==785 first), verify main 4009→3224, then bounce the api (a separate-process delete leaves the api's in-memory HNSW index holding the vectors until reload — the #381 pattern generalizes to deletes), confirm search now fiction-only. Backup left for /tmp natural cleanup (fiction wing is canonical; ~/archives has the historical record).

Result: fiction wing 166 → 1,372 concepts; three consumer verify rounds 0/5 → 5/5 → saturated; #385 budget fix validated (705 vs April's 785 control, extraction AND indexing, zero truncations). worldtree-dev filed #388 for a deploy concurrency-lock (the shared-containerd race fix). See 2026-08-02-mimir-inbox-arc.