0.13.0
Pluggable storage, /config command, and error observability
Features
-
Pluggable StateStore interface -- The bridge's state persistence is now behind a
StateStoreinterface with 35 methods includingwithTransaction(). Custom backends (Postgres, Redis, etc.) can be loaded at startup via thedatabase.moduleconfig option. The built-inSqliteStateStoreremains the default. (#179, #176) -
/configcommand -- Shows the effective configuration for the current channel in a markdown table with Setting / Value / Source columns. Traces each value back to its origin: defaults, config.json, dynamic registration, bot config, channel prefs, or the active session. (#184)
Improvements
-
Async store layer -- All state store functions are now async. Store writes from post-RPC paths are best-effort so a slow or failed write never blocks session operations. Added error logging and database observability across all store calls. (#177)
-
Error observability -- Eliminated all silent
catch {}blocks insession-manager.tsandindex.ts. Every catch now emits at minimumlog.debug. High-severity catches (user-visible failures likereadPlan,getAuthStatus,listModels) emitlog.warn. AddedsafeDestroySession()helper to replace 8 identical silent destroy patterns. (#185, #178)
Dependencies
@mattermost/client10.3.0 -> 11.5.0@mattermost/types10.3.0 -> 11.5.0vitest4.1.1 -> 4.1.2
Tests
683 tests (up from 659 in 0.12.2)