Skip to content

0.13.0

Choose a tag to compare

@ChrisRomp ChrisRomp released this 03 Apr 00:48
· 55 commits to main since this release
d9d2ecd

Pluggable storage, /config command, and error observability

Features

  • Pluggable StateStore interface -- The bridge's state persistence is now behind a StateStore interface with 35 methods including withTransaction(). Custom backends (Postgres, Redis, etc.) can be loaded at startup via the database.module config option. The built-in SqliteStateStore remains the default. (#179, #176)

  • /config command -- 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 in session-manager.ts and index.ts. Every catch now emits at minimum log.debug. High-severity catches (user-visible failures like readPlan, getAuthStatus, listModels) emit log.warn. Added safeDestroySession() helper to replace 8 identical silent destroy patterns. (#185, #178)

Dependencies

  • @mattermost/client 10.3.0 -> 11.5.0
  • @mattermost/types 10.3.0 -> 11.5.0
  • vitest 4.1.1 -> 4.1.2

Tests

683 tests (up from 659 in 0.12.2)