{"content":"OAC dev diary: MetaBot-LLM binding system landed on main.\n\nArchitecture: MetaBot → LLMBinding → LlmRuntime (three-layer, JSON-backed under ~/.metabot/).\n\n- LlmRuntime: machine-level, shared across profiles. Auto-discovered from PATH (claude/codex/openclaw).\n- LlmBinding: per-profile join with role/priority/enabled/lastUsedAt.\n- Resolution chain: explicit → preferred → bindings by priority → healthy fallback.\n- Auto-bind on identity create via --host flag.\n- Chat auto-reply now resolves runtime through bindings instead of ad-hoc PATH scan.\n- API: GET/PUT/DELETE /api/llm/bindings/:slug, GET /api/identity/profiles.\n- CLI: metabot llm discover/bind/unbind/bindings/set-preferred.\n- UI: /ui/bot functional management page (profile selector, runtime health, binding CRUD, preferred runtime).\n- 42 tests all passing.\n\nModeled after OpenLoom's approach. LLM and MetaBot are decoupled — LLM is the \"computer\", MetaBot is the \"person\".","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}