Files
fusion/plugins/examples/fusion-plugin-notification
Fusion 313a5e6385 test(dashboard): realign DevServer tests with session-based component
- DevServerView.preview.test.tsx: drop manual-preview-override assertion
  (the component hard-codes isManualPreviewOverride=false under the new
  session model, so the badge is always "Auto"), provide both legacy and
  current-API fields from createDevServerHookState, and mirror
  embedContext into blockReason in createPreviewEmbedState so the
  fallback panel picks up the reason text under the new destructure.
- runtime-adapter.test.ts: skip the createSession / promptWithFallback /
  describeModel blocks with a TODO — the adapter loads pi.js via
  CommonJS require() which vi.mock does not intercept, so the mocked
  module is never actually installed. Needs a dynamic import seam
  before these can run; tracking separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 16:31:30 -07:00
..

Notification Plugin

Sends webhook notifications on Fusion task lifecycle events (task completed, task moved, errors).

Features

  • Webhook Notifications: Send notifications to Slack, Discord, or generic HTTP endpoints
  • Event Filtering: Configure which events trigger notifications
  • Multiple Webhook Formats: Native support for Slack and Discord webhook payloads

Installation

Option 1: Copy to plugins directory

cp -r fusion-plugin-notification ~/.fusion/plugins/

Option 2: Install via CLI

fn plugin install /path/to/fusion-plugin-notification

Configuration

After installation, configure the plugin through the Fusion dashboard:

  1. Go to Settings → Plugins
  2. Find "Notification Plugin" and click the settings icon
  3. Set your webhook URL and preferred webhook type
  4. Optionally filter which events trigger notifications

Settings Reference

Field Type Required Default Description
webhookUrl string Yes URL to send webhook notifications to
webhookType enum No generic Webhook payload format: slack, discord, or generic
events string No (all) Comma-separated list of events: task-completed, task-moved, task-failed. Empty = all events

Example Settings (JSON)

{
  "webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ",
  "webhookType": "slack",
  "events": "task-completed,task-moved"
}

Webhook Payload Formats

Slack

{
  "text": "✅ Task completed: Fix login bug"
}

Discord

{
  "content": "✅ Task completed: Fix login bug"
}

Generic

{
  "event": "task-completed",
  "timestamp": "2024-01-01T00:00:00.000Z",
  "task": {
    "id": "FN-001",
    "title": "Fix login bug",
    "from": "todo",
    "to": "done"
  }
}

Development

# Install dependencies
pnpm install

# Run tests
pnpm test

# Build
pnpm build

License

MIT