Releases: pontusab/workbench
v0.9.1 — Discord alerts
Added
@getworkbench/coreDiscord as an official alert contact point: webhook URL validation (discord.com/ptb.discord.com), embed payload formatting with severity colors, and dashboard setup instructions alongside Slack and generic webhooks.
Fixed
@getworkbench/core@0.9.0was withdrawn — the initial tarball was missingdist/. Use 0.9.1.
Changed
- All 14 publishable adapter packages bump together to
0.9.1.
Install: bun add @getworkbench/core@0.9.1 (or your framework adapter at the same version).
v0.8.0 — Self-hosted alerting
Added
@getworkbench/coreSelf-hosted alerting: BullMQQueueEventslisteners, Slack/webhook presets, dashboard Alerts page, and Redis-backed persistence for contact points and rules (keys under{prefix}:workbench:alerts:*). Alerts are enabled by default; configure destinations and rules in the dashboard to start receiving notifications.@getworkbench/coreSlack incoming webhook validation, Block Kit payload formatting (HTTPS dashboard buttons, HTTP dev links), and in-dialog Slack setup instructions.
Changed
- All 14 publishable adapter packages bump together to
0.8.0.
Install: npm install @getworkbench/core@0.8.0 (or your framework adapter at the same version)
v0.7.0 — AdonisJS and TanStack Start adapters
[0.7.0] - 2026-05-27
Added
@getworkbench/adonis— first-party AdonisJS 6/7 adapter withmountWorkbench()for catch-all routing onrouter.any().@getworkbench/tanstack-start— TanStack Start server-route adapter; mount viacreateFileRoute(...)({ server: { handlers: workbench(...) } }).@getworkbench/clidetects AdonisJS and TanStack Start projects and scaffolds the Workbench mount (routes file or server routes).- Smoke-tested example apps:
examples/with-adonis,examples/with-tanstack-start. - Marketing site logos, hero strip, blog posts, and
llms.txtentries for both frameworks.
Changed
- All 14 publishable adapter packages (
@getworkbench/core,hono,elysia,express,fastify,nestjs,next,koa,astro,nuxt,bun,h3,adonis,tanstack-start) bump together to0.7.0.@getworkbench/clibumps to0.5.0;@getworkbench/mcpstays at0.5.1.
v0.6.0 — Dashboard command center
Added
@getworkbench/coreOverview is now the default home (/): fleet KPI cards, 24h throughput chart, attention alerts (worker health, paused queues, failed backlog), and per-queue health cards with sparklines and worker counts.@getworkbench/corecollapsible shadcn sidebar with icon rail mode,SidebarTrigger, and⌘Btoggle; queue list stays inline when expanded and in a HoverCard when collapsed.@getworkbench/coretargeted shadcn primitives —Alert,AlertDialog, and Sonner toasts — for attention blocks, destructive confirms, and op feedback.@getworkbench/corequeue Clean completed/failed action (DropdownMenu → AlertDialog confirm with grace period → toast).@getworkbench/coreRuns list shows truncatedfailedReasonon failed rows; list API payload trimmed viajobToInfo(..., "list").@getworkbench/corelive cues: header sync timestamp with pulse when jobs are active; active job progress bar; Live badge on the Logs tab.
Changed
@getworkbench/coreRuns moves to/runs(Overview replaces it at/). Command palette and sidebar nav updated accordingly.@getworkbench/coreQueueInfonow includes optionalworkerCountfrom BullMQgetWorkersCount().- All 12 publishable adapter packages bump together to
0.6.0.@getworkbench/clistays at0.4.0;@getworkbench/mcpstays at0.5.1.
Fixed
@getworkbench/coreMetrics Most Failing Job Types rows link to the latest failed job detail.
v0.5.2
Added
- Job Details Logs tab for BullMQ
job.log()output (GET /jobs/:queue/:id/logs), with lazy loading and polling for active jobs. Closes #15.
Changed
- Workbench app icon as favicon and inline React sidebar logo.
- All
@getworkbench/*adapter packages bump to 0.5.2 (lockstep with core).
Fixed
- Sidebar queue popover scrolls when there are many queues (Radix available-height).
Upgrade
npm install @getworkbench/core@0.5.2 @getworkbench/express@0.5.2
# …or your adapter package at the same versionv0.5.1 — @getworkbench/mcp
✨ New package: `@getworkbench/mcp`
Optional Model Context Protocol server that lets Cursor, Claude Desktop, Zed, Continue.dev, and any other MCP-aware agent inspect, debug, and operate BullMQ queues through a running Workbench dashboard.
Why?
Workbench gives developers a beautiful BullMQ dashboard. The MCP gives agents the same surface. Same data, same operations, same permissions — but reachable from an AI editor's chat:
- "Why is `email-send` backed up?" — agent calls `workbench_get_metrics`, sees p95 latency spiked at 14:02, calls `workbench_list_runs` with `status=failed` and `from=14:00`, finds the regression.
- "Retry every failed `webhook-deliver` from the last hour." — `workbench_list_runs` + `workbench_bulk_retry`.
- "Run the nightly billing scheduler now so I can verify the fix." — `workbench_list_schedulers` + `workbench_run_scheduler_now` (added in 0.5.0).
18 tools
Inspect (`readOnlyHint: true`): `workbench_get_overview`, `list_queues`, `get_quick_counts`, `get_metrics`, `get_activity`, `list_jobs`, `list_runs`, `get_job`, `search_jobs`, `list_schedulers`, `list_flows`, `get_flow`, `list_tag_values`
Operate (`destructiveHint: true`): `workbench_retry_job`, `remove_job`, `promote_job`, `pause_queue`, `resume_queue`, `run_scheduler_now`, `enqueue_job`, `clean_jobs`, `bulk_retry`, `bulk_delete`
Install
```json
{
"mcpServers": {
"workbench": {
"command": "npx",
"args": ["-y", "@getworkbench/mcp"],
"env": {
"WORKBENCH_URL": "http://localhost:3000/jobs",
"WORKBENCH_USERNAME": "admin",
"WORKBENCH_PASSWORD": "hunter2"
}
}
}
}
```
The MCP is a thin HTTP proxy to the dashboard's REST API — it reuses the dashboard's existing Basic Auth and inherits the `readonly` flag end-to-end. No second source of truth for permissions.
Full docs: packages/mcp/README.md
Released packages
- `@getworkbench/mcp@0.5.1` (new)
All other packages remain at `0.5.0`.
v0.5.0
Highlights
- "Run now" for repeatable schedulers — one-off trigger from the Schedulers page that doesn't disturb the cron schedule. (Thanks @emilnator, #10.)
- Schedulers Delayed tab no longer mirrors the Repeatable tab — only ad-hoc delayed jobs surface there now. (Thanks @emilnator, #11.)
- Future "Next Run" timestamps render as "in 10h" instead of malformed "-37022s ago". (Thanks @emilnator, #12.)
- All 12 publishable packages (`core`, `hono`, `elysia`, `express`, `fastify`, `nestjs`, `next`, `koa`, `astro`, `nuxt`, `bun`, `h3`) bump together to `0.5.0`. `@getworkbench/cli` stays at `0.4.0`.
- Marketing site now optimised for AI search citation (ChatGPT, Perplexity, Claude, Gemini, Google AI Overviews): explicit AI bot allowlist, site-wide `SoftwareApplication` + `FAQPage` JSON-LD, and `/llms.txt`.
See the CHANGELOG for full details.
v0.3.2
Critical patch release. Upgrade immediately if you're on 0.3.1.
@getworkbench/core@0.3.1 shipped without the dashboard UI bundle, so any adapter serving the dashboard returns a 404 on every dashboard request. 0.3.2 restores the bundle and folds in two dashboard UI bug fixes from open issues.
Fixed
@getworkbench/core@0.3.1shipped withoutdist/ui/. Flippingtsuptoclean: truein0.3.1made thetsuplib build wipedist/aftervite buildhad populateddist/ui/, so the published tarball contained nodist/ui/index.htmlordist/ui/assets/*. Adapters serving fromUI_DIST_PATHreturned 404 on every dashboard request. The core build script now runsrm -rf distonce up-front (bun run clean && bun run build:ui && bun run build:lib) andtsupkeepsclean: false, so vite's output survives. Thedist/ui/tree is verified to ship in0.3.2's tarball.- Sidebar queue list is scrollable when there are many queues. The HoverCard popover now caps at
min(70svh, 32rem)withoverflow-y-autoinstead of growing past the viewport. Long queue names also truncate inside the popover (with atitletooltip) so the paused indicator no longer gets pushed out. Fixes #7. - Queue names on the overview cards truncate with
min-w-0+truncateand atitletooltip when too long, and the "Paused" chip is nowshrink-0. Long names no longer overlap the status chip. Fixes #8. - Sidebar nav icons (and every other
<button>) show a pointer cursor on hover again. Tailwind v4's preflight droppedcursor: pointerfrom the default button reset — a global base rule restores v3 behavior. Part of #7.
Deprecated
@getworkbench/core@0.3.1(and the six adapters at0.3.1) are deprecated on npm. Use0.3.2or later.
Upgrade
npm i @getworkbench/express@0.3.2 # or fastify / hono / elysia / next / nestjsPublished packages
@getworkbench/core@0.3.2@getworkbench/express@0.3.2@getworkbench/fastify@0.3.2@getworkbench/hono@0.3.2@getworkbench/elysia@0.3.2@getworkbench/next@0.3.2@getworkbench/nestjs@0.3.2
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Patch release rolling up three community PRs plus a dist-hygiene cleanup. No API breakage; safe upgrade from 0.3.0.
Fixed
@getworkbench/coreQueueManager.getJobsByTimeRangeno longer crashes withTypeError: undefined is not an object (evaluating 'job.finishedOn')when BullMQ returnsnull/undefinedentries fromqueue.getJobs(). This affected the two fallback paths (missing Redis client, and thecatchafter a failedZRANGEBYSCORE) and showed up as a 500 on{basePath}/api/metricsunder real queue churn withremoveOnComplete/removeOnFail. Stale entries are now filtered out before the timestamp comparison. Fixes #5. (Thanks @Stormix, #6.)- "Enqueue test job" from the dashboard no longer hits a 400. The frontend payload now matches the API's
TestJobRequestshape ({ queueName, jobName, data, opts: { delay } }) instead of{ queueName, name, data, delay }. (Thanks @goyalshivansh2805, #4.) - Command palette (cmdk menu) now renders correctly in light mode. Tailwind v4's
@custom-variant darkis registered inglobals.css, and the dialog surface, border, and selected-item state use light-mode-aware colors so highlighted items are visible. (Thanks @NoahGdev, #1.)
Added
- BullMQ
prioritizedandwaiting-childrenjob states are now surfaced in queue and run filters, job fetching, counts, sidebar summaries, badges, flow nodes, and command palette status indicators. (Thanks @phibr0, #2.)
Changed
- Job status UI ordering, alongside the
prioritized/waiting-childrenadditions above. - Every adapter's
tsup.config.tsnow hasclean: true, so stale hashed chunk artifacts no longer linger indist/between rebuilds. The@getworkbench/core@0.3.0tarball shipped one such unreferenced 19 KB.d.tschunk;0.3.1ships a clean dist.
Upgrade
npm i @getworkbench/express@0.3.1 # or fastify / hono / elysia / next / nestjsWorkspace deps (@getworkbench/core) are pinned via workspace:* → ^0.3.1 automatically.
Published packages
@getworkbench/core@0.3.1@getworkbench/express@0.3.1@getworkbench/fastify@0.3.1@getworkbench/hono@0.3.1@getworkbench/elysia@0.3.1@getworkbench/next@0.3.1@getworkbench/nestjs@0.3.1
Full Changelog: v0.3.0...v0.3.1