Tenant surfaces, TrueNAS deployment, and thoughts on the wire (v1.6.1 to v1.8.2) The Loomcycle project released eight versions (v1.6.1 to v1.8.2) over five days, introducing tenant-scoped Web UI surfaces, supporting TrueNAS deployments, adding vision capabilities across all providers, and fixing a critical bug where streamed reasoning traces were silently dropped. The updates also include effort hint support for local reasoning models and improved CLI configuration layering. Five days, eight loomcycle releases, three arcs. Arc 1: tenant surfaces RFC AS — the tenant-operator Web UI lands across v1.6.3-v1.6.7. Library + def-plane /names reads tenant-scoped, Library route gated at substrate:tenant, per-surface nav visibility v1.6.3 , static/bundled agents visible to tenant operators as read-only, schedules surface tenant-scoped, Path/Document browse-by-subject with a topbar picker, audit log tenant-scoped via owning session v1.6.4 , bundled inline top-level skills surface in the Library, Document op=create document always registers a Path dirent defaulting /documents/ plus a new op=set path so documents are never orphaned v1.6.5 , sub-agent session inherits parent's tenant v1.6.6 , Context op=self reports the full principal block + a server block from LOOMCYCLE PUBLIC URL v1.6.7 . Load-bearing shape: admin sees all + optional ?tenant= focus, substrate:tenant operator confined by construction, cross-tenant reads return empty never 403 , nav visibility derives from bearer scopes. Arc 2: TrueNAS deployment moved from possible to supported. Distributed across every version: v1.6.2 softens Postgres floor to ≥14 was pinned 16 , moves secrets to env file, ships chat + chat-local bundles, adds LOOMCYCLE OLLAMA LOCAL NUM GPU. v1.6.4 fixes SQL-Memory Postgres role needs CREATEROLE for per-scope roles at runtime . v1.6.7 wires LOOMCYCLE PUBLIC URL in compose + INSTALL.md. Arc 3: vision + thoughts on the wire. v1.7.0 lands RFC AT image/vision across all providers Anthropic native, OpenAI content-array, Gemini inlineData, Ollama images field + every transport HTTP + gRPC + MCP + TS + Python adapters bump 1.7.0 . v1.7.1 fixes the fallback-target vision gate: re-check SupportsVision inside tryProviderFallback, emit EventFallbackSuppressed with RFC AT §4.4 cite on non-vision target, image never leaks to DeepSeek's raw 400. v1.8.0 wires effort hint to Ollama's think flag medium/high → think:true for local reasoning models qwen3, deepseek-r1 ; consistent error posture with cloud drivers. v1.8.1 makes CLI validate/agents/doctor honor LOOMCYCLE PRESETS/CONFIG DIR/CONFIG FILES layering, plus a LOOMCYCLE OLLAMA DEBUG THINK diagnostic. v1.8.2 is the two-line root-cause fix: the loop's event switch had no case for EventThinking and no default, so every provider's streamed reasoning trace was silently dropped at the loop and never reached SSE/gRPC/adapters. Fix: case providers.EventThinking: emit ev . Small wins: v1.6.1 MCP thin-client transparent re-handshake on upstream session expiry ends the /reload-plugins dance ; GET /v1/ models exposes the operator's alias map so a UI can offer aliases in a picker and forks track alias retargets. Adapters unchanged since v1.7.0; server-side patches through v1.8.2.