Glossary
Quick definitions for Watchfire-specific terms — release codenames, agent modes, components, project model, isolation, Beacon vocabulary, and integrations.
Quick definitions for Watchfire-specific terms. For deeper explanations follow the cross-links.
Index
- Adapter
- Backend
- Beacon
- Blaze
- Bubblewrap
- Chat mode
- CLI/TUI
- Daemon
- Diff viewer
- Discord rich embed
- Echo server
- Ember
- Filter chips
- Flare
- Focus events
- Generate Definition mode
- Generate Tasks mode
- GitHub auto-PR
- GUI
- Idempotency cache
- Insights
- Landlock
- Layout toggle
- Metrics
- Notification bus
- Notification kind
- Notification preferences
- Project
- Project YAML
- Relay dispatcher
- Sandbox
- Seatbelt
- Signature verification
- Slack Block Kit
- Slash command router
- Spark
- Start All mode
- Status bar
- System tray
- Task
- Task mode
- Task YAML
- .watchfire directory
- Webhook adapter
- Wildfire mode
- Worktree
Release codenames
Ember
The 0.x and 1.0 release line that shipped the original Claude Code-only daemon, CLI/TUI, and GUI on macOS, Linux, and Windows. Changelog →
Spark
The 2.x release line that introduced the pluggable agent backend interface and shipped Claude Code, OpenAI Codex, opencode, and Gemini CLI as first-class backends. Changelog →
Blaze
The 3.x release line that added GitHub Copilot CLI as a fifth first-class backend. Changelog →
Beacon
The 4.x release line — the consolidated dashboard, notifications, insights, and integrations release. Changelog →
Flare
The 5.x release line — closes the Beacon inbound loop with the GitHub PR-merge handler and Slack HTTP transport, adds OAuth bot tokens, GitHub Enterprise / GitLab / Bitbucket inbound parity, per-IP rate limiting, Slack interactive components, Discord guild auto-registration, the run-all auto-merge halt fix, and macOS-style category sub-pages with search in Settings. Changelog →
Agent modes
Chat mode
Free-form interactive session with the coding agent at project root, with no task context. Agent modes →
Task mode
Single-task execution where the agent receives a task's prompt and acceptance criteria and works inside an isolated worktree. Agent modes →
Start All mode
Sequential execution of every ready task in turn, each in its own worktree. Agent modes →
Wildfire mode
Fully autonomous three-phase loop — execute ready tasks, refine drafts, generate new tasks, then repeat until no work remains. Agent modes →
Generate Definition mode
One-shot mode where the agent analyses the codebase and writes the project definition. Agent modes →
Generate Tasks mode
One-shot mode where the agent reads the project definition and creates a batch of task files. Agent modes →
Components
Daemon
The always-on Go process (watchfired) that owns orchestration, PTY management, git worktree workflows, the gRPC server, and the system tray. Daemon doc →
CLI/TUI
The watchfire binary — project-scoped CLI commands plus a Bubbletea-based interactive split-view TUI. CLI/TUI doc →
GUI
The Electron desktop client (Watchfire.app) that shows every project across the fleet at once. GUI doc →
Echo server
The inbound HTTP server inside the daemon (internal/daemon/echo) that receives signed requests from external services like Slack, Discord, and GitHub. Integrations doc →
Relay dispatcher
The outbound delivery component (internal/daemon/relay) that subscribes to the notification bus and fans events out to every registered adapter. Integrations doc →
System tray
The dynamic menu-bar icon rendered by internal/daemon/tray that surfaces per-project status, today's notifications, and quick stop/quit actions. Daemon doc →
Project model
Project
A registered Watchfire workspace — one git repository plus its .watchfire/ directory and entry in ~/.watchfire/projects.yaml. Projects and Tasks →
Task
A unit of work described by a YAML file in .watchfire/tasks/, flowing through draft → ready → done and optionally pinned to a specific backend. Projects and Tasks →
Project YAML
The project.yaml file inside .watchfire/ that holds project id, default agent, sandbox mode, auto-merge / auto-delete-branch / auto-start flags, and the project definition. Projects and Tasks →
Task YAML
A single <n>.yaml file inside .watchfire/tasks/ that carries task_id, task_number, title, prompt, acceptance_criteria, status, success, and an optional per-task agent override. Projects and Tasks →
.watchfire directory
The per-project gitignored directory that holds project.yaml, tasks/, memory.md, secrets/, and active worktrees/. Projects and Tasks →
Isolation
Worktree
A per-task git worktree at .watchfire/worktrees/<task_number>/ on branch watchfire/<task_number>, where the agent makes changes without touching the main working tree. Worktrees doc →
Sandbox
The platform-specific isolation layer Watchfire wraps every agent process in, configured via sandbox: auto | seatbelt | landlock | bwrap | none. Sandboxing doc →
Seatbelt
The macOS sandbox backend (sandbox-exec / Apple's App Sandbox) that enforces a kernel-level filesystem and credential-directory deny-list generated from the runtime SandboxPolicy. Sandboxing doc →
Landlock
The preferred Linux sandbox backend, using the kernel's Landlock LSM (5.13+) with no external dependencies. Sandboxing doc →
Bubblewrap
The fallback Linux sandbox backend (bwrap) that uses mount namespaces with a read-only root and a writable project directory. Sandboxing doc →
Backend
A single Go implementation of the Backend interface in internal/daemon/agent/backend/ — one per supported coding agent (claude-code, codex, opencode, gemini, copilot) — that owns binary resolution, command construction, system-prompt delivery, transcript discovery, and sandbox extras. Supported agents →
Beacon vocabulary
Notification bus
The typed channel-fan-out Bus in internal/daemon/notify that emits stable-ID notification events to every subscriber, with a JSONL fallback at ~/.watchfire/logs/<project_id>/notifications.log. Daemon doc →
Notification kind
The discriminator on every notification event — TASK_FAILED, RUN_COMPLETE, or WEEKLY_DIGEST — that determines toast routing, channel rendering, and gating. Integrations doc →
Notification preferences
The defaults.notifications block in ~/.watchfire/settings.yaml controlling master toggle, per-event toggles, sounds, volume, quiet hours, and per-project mute. Daemon doc →
Idempotency cache
The 1000-entry / 24-hour LRU+TTL cache in internal/daemon/echo/idempotency.go that drops duplicate inbound deliveries via Seen(key). Integrations doc →
Signature verification
The constant-time HMAC-SHA256 (GitHub, Slack) and Ed25519 (Discord) verifiers in internal/daemon/echo/verify.go that authenticate inbound requests with a 5-minute drift window. Integrations doc →
Insights
The per-project and cross-project aggregation surface that turns <n>.metrics.yaml files into KPIs, agent donuts, duration histograms, and rollup cards. Insights doc →
Metrics
The <n>.metrics.yaml siblings in .watchfire/tasks/ capturing duration, exit reason, agent, tokens, and cost for every completed task. Insights doc →
Diff viewer
The structured FileDiffSet produced by internal/daemon/diff (capped at 10 000 lines) that resolves pre-merge diffs against <merge-base>...HEAD and post-merge diffs against the merge commit, surfaced in the GUI Inspect tab and the TUI overlay bound to d. Worktrees doc →
Focus events
The DaemonService.SubscribeFocusEvents stream that routes click-throughs from the system tray and OS notifications to the right project, task, or digest in a connected client.
Status bar
The muted dashboard line N working · N needs attention · N idle · N done today rendered above the project grid in the GUI. GUI doc →
Filter chips
The dashboard pill chips (All, Working, Needs attention, Idle, Has ready tasks) whose selection persists in localStorage[wf-dashboard-filter]. GUI doc →
Layout toggle
The dashboard LayoutGrid / Rows3 toggle that switches the GUI dashboard between project cards and a one-row-per-project list, persisted in localStorage[wf-dashboard-layout]. GUI doc →
Integrations
Adapter
A single implementation of the relay Adapter interface — one per outbound destination (webhook, Slack, Discord, GitHub auto-PR) — owning its template rendering, retry timing, and circuit breaker. Integrations doc →
Webhook adapter
The generic adapter that POSTs the canonical notify.Notification payload to a user-supplied URL with an X-Watchfire-Signature: sha256=<hex> HMAC over the raw body. Integrations doc →
Slack Block Kit
The three header / section / context / actions envelopes (TASK_FAILED, RUN_COMPLETE, WEEKLY_DIGEST) rendered by internal/daemon/relay/slack.go for the Slack adapter. Integrations doc →
Discord rich embed
The three project-color-tinted embed envelopes rendered by internal/daemon/relay/discord.go for the Discord adapter, with a defensive 4000-rune description trim. Integrations doc →
GitHub auto-PR
The opt-in per-project end-of-task lifecycle in internal/daemon/git/pr.go::OpenPR that pushes the watchfire/<n> branch and opens a pull request via gh api. Integrations doc →
Slash command router
The transport-agnostic Route(ctx, cmd, subcmd, rest, CommandContext) CommandResponse in internal/daemon/echo/commands.go that powers status, retry <task>, and cancel <task> across every inbound transport. Integrations doc →