Work produced by the /kb driver on 2026-07-30. Each change is recorded on its
Kanboard task; all remain Done-unverified or parked pending alvis's decisions.
#183 agap-mcp/src/gitea.js
askpassScript() and giteaWikiWrite()'s wiki checkout both used
/tmp/agap-mcp-wiki, so writing the askpass helper made the dir non-empty and
git clone always failed. gitea_wiki_write had likely never succeeded in
production. Askpass moved to its own dir.
#181 agap-mcp/src/server.js
Initialise registeredToolCount at module load so /health reports the real
count immediately instead of 0 until the first MCP request.
#189 kanboard/backup.sh, seafile/backup.sh, vaultwarden/backup.sh,
users-backup.sh, openai/backup-{hindsight-adolf,llm-dbs}.sh
Remove the dead *.ts Zabbix trapper pushes (never landed). users-backup.sh
also pointed at localhost:81 instead of 192.168.1.4:81 and pushed a date
string into a numeric item. Freshness monitoring now rides the .age items.
#192 RESTORE-RUNBOOK.md, {kanboard,seafile,vaultwarden}/restore.sh
Restore path for the three services, verified in throwaway containers.
Note: this work found Seafile backups have carried an empty ccnet_db.sql
since 2026-07-07 -- filed as kb#222, not fixed here.
#164 openai/litellm-config.yaml
Metered `judge` (anthropic/claude-haiku-4-5) entry removed per alvis's
2026-07-30 decision. ANTHROPIC_API_KEY was never wired, so it could not spend.
#128 openai/agent_registry.py
litellm_key_spec() now also grants the routing-mode aliases, gated by the
same _reachable_tiers() check as raw grants, so a small-tier agent cannot
acquire automatic routing that resolves to tier-large.
#219 openai/migrate-adolf-state.sh
Migration script only; inert until run. Copies (never moves) the
openai_adolf-state volume to /mnt/ssd/dbs/adolf, verifying a full sha256
manifest before declaring success. Tested against a throwaway volume.
Deliberately NOT included, both awaiting alvis:
agap-mcp/docker-compose.yml -- kb#174's contested BW_EMAIL revert (parked).
openai/docker-compose.yml -- kb#219's bind-mount switch; the target dirs
under /mnt/ssd/dbs/adolf do not exist yet, so
committing it would let a later `compose up`
recreate Adolf against empty paths.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Y5QPagv4iun1ghpwM96Ff
docker-compose.yml gains healthchecks and depends_on/condition chains for the
litellm/langfuse/postgres tier so dependants wait for a genuinely ready
service instead of a started container. Also plumbs AGAP_MCP_TOKEN into the
adolf and adolf-llm containers, sourced from openai/.env (gitignored), for the
kb#180 bearer auth on the agap MCP server; shared-mcp.json consumes it via
bearerTokenEnvVar so the Kimi backbone authenticates too.
agent-registry.yaml / agent_registry.py: the version-controlled source of
truth for agent identities and trust classes -- the same ids the agap-mcp
token map resolves to (`adolf`, `claude-coder`; note `claude-code-cli` is the
runtime entry, not an agent identity).
model-registry.yaml, litellm-config.yaml, auto-router-routes.json and
provision_litellm_keys.py: model tiering, virtual-key provisioning and
auto-router routes. tei-reranker/ is the local reranker service backing
Hindsight recall.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Runs the kimi-code coding agent in its own container, exposed as an
OpenAI-compatible model ("kimi-agent") that LiteLLM/Open WebUI can call
directly. Backed by the user's own Kimi/Moonshot subscription via
`kimi login`, not the pay-per-token API. Mount is scoped to a dedicated
~/kimi-workspace directory rather than the full home dir.
- LiteLLM proxy with langfuse callbacks, postgres backends, and OpenRouter fallbacks.
- Langfuse observability UI.
- Pipecat voice pipeline (LiveKit + STT + TTS + LLM) and Silero TTS build contexts.
- Ollama tuned for GPU (OLLAMA_NUM_GPU=999, mem_limit=4g, max 2 loaded models).
- open-webui wired to litellm + faster-whisper + silero for voice.
- litellm-config.yaml publishes oO's model aliases (tip-generator, embedder, judge)
pointing at the host ollama on :11434 so ml/serving can call them via LiteLLM.
.env skipped (secrets).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>