feat: Mattermost plugin + daemon integration (Phases 2-5)
Plugin (Go server + React webapp): - Custom post type 'custom_livestatus' with terminal-style rendering - WebSocket broadcasts for real-time updates (no PUT, no '(edited)') - KV store for session persistence across reconnects - Shared secret auth for daemon-to-plugin communication - Auto-scroll terminal with user scroll override - Collapsible sub-agent sections - Theme-compatible CSS (light/dark) Daemon integration: - PluginClient for structured data push to plugin - Auto-detection: GET /health on startup + periodic re-check - Graceful fallback: if plugin unavailable, uses REST API (PUT) - Per-session mode tracking: sessions created via plugin stay on plugin - Mid-session fallback: if plugin update fails, auto-switch to REST Plugin deployed and active on Mattermost v11.4.0.
This commit is contained in:
@@ -82,6 +82,15 @@ function buildConfig() {
|
||||
|
||||
// Feature flags
|
||||
enableFsWatch: getEnvBool('ENABLE_FS_WATCH', true),
|
||||
|
||||
// Mattermost plugin integration (optional)
|
||||
// When configured, updates are sent to the plugin instead of using PUT on posts
|
||||
plugin: {
|
||||
url: getEnv('PLUGIN_URL', null), // e.g. https://slack.solio.tech/plugins/com.openclaw.livestatus
|
||||
secret: getEnv('PLUGIN_SECRET', null),
|
||||
enabled: getEnvBool('PLUGIN_ENABLED', true),
|
||||
detectIntervalMs: getEnvInt('PLUGIN_DETECT_INTERVAL_MS', 60000),
|
||||
},
|
||||
};
|
||||
|
||||
// Validate MM base URL
|
||||
|
||||
Reference in New Issue
Block a user