Releases: riverqueue/riverui
v0.16.0-rc.1
Version 0.16.0 includes support for the all new workflow engine in River Pro v0.24.0, including signals, timers, and greater introspection capabilities.
Added
- Workflow detail: add support for new River Pro workflow features, including signals and timers. PR #567.
Fixed
- Workflow detail: add on-canvas zoom controls for click/touch navigation and improve controls styling for dark mode. PR #524.
- Workflow detail: improve default workflow diagram framing for legibility while still allowing manual zoom-out to view the full graph. PR #524.
- Workflow detail: truncate long workflow names in the header to prevent overflow and add a copy button for the full name. PR #524.
- JSON viewer: sort keys alphabetically in rendered and copied output for object payloads. PR #525.
- Job state sidebar: only highlight
Runningwhen the selected jobs state is actually running, even with retained search filters in the URL. Fixes #526. PR #527. - Job delete actions: require confirmation before deleting a single job or selected jobs in bulk. Fixes #545. PR #546.
- Workflow detail: show the backend's not-found message instead of crashing when a workflow ID does not exist. PR #564.
- Job detail: render a dedicated
Snoozedtimeline step for scheduled jobs with prior attempts so snoozed jobs no longer show negative wait durations. PR #565. - Workflow detail: source wait phases, timers, signal evidence, and task wait reasons from backend workflow wait metadata instead of frontend-derived placeholders. PR #567.
- Workflow detail: redesign wait inspection around a denser task-side summary, structured term/timer/signal cards, reliable full-node selection, Storybook workflow detail coverage below the diagram, and a tighter details layout that keeps job metadata with the main job card. PR #567.
- Workflow detail: add a task-signal debugger backed by task-scoped River Pro signal reads while keeping workflow detail wait data summary-only. PR #567.
- Workflow detail: clarify wait inspection with a compact condition matrix, phase-aware match summaries, explicit signal scopes, condition-type icons, per-term CEL definitions, and denser timer/dependency/signal evidence. PR #567.
- Workflow detail: replace the flat narrative event list with a task timeline that keeps dependencies in one place, emphasizes wait evidence and durations, avoids showing staged events before a task is actually runnable, and uses a lower-noise milestone hierarchy. PR #567.
- Workflow detail: remove the not-started wait preview from dependency progress milestones. PR #567.
v0.15.0
Changed
- Upgrade supported Go versions to 1.25 and 1.26, and update CI accordingly. PR #508.
- Upgrade River to v0.31.0 and River Pro to v0.22.0. PR #511.
- Numerous dependency upgrades.
Fixed
- Prevent double slash in URLs for root path prefix. Thanks Jan Kott! PR #487.
- Serve UI HTML for wildcard or missing Accept headers and return 406 for explicit non-HTML requests. Fixes #485. PR #493.
- Prevent jobs detail navigation from bouncing back to
/jobs/on slow networks due to stale filter-sync URL updates. Fixes #495. PR #504. - Workflow detail: improve dependency edge routing to avoid turns under task cards, avoid line segments crossing node bodies, and keep fan-in edges visually converged into shared merge lanes when possible. PR #507.
v0.14.0
v0.13.0
prepare v0.13.0 (#442)
v0.12.2
v0.12.1
v0.12.0
riverui as an embedded http.Handler or via a Docker image. The ghcr.io/riverqueue/riverui images no longer include Pro-specific functionality; Pro customers must use new riverqueue.com/riverproui images to access Pro features. The main type was also renamed from Server to Handler for correctness since it functions as an http.Handler. See details below.
Changed
-
Go binary now built without debug symbols for a ~35% reduction in output size. PR #391.
-
Breaking change: River UI has been split into two modules and two executables:
riveruifor OSS-only functionality, andriverprouiwhich adds Pro-specific functionality through dependencies onriverqueue.com/riverpro. This change makes it far easier to continue extending the UI for everybody but especially for Pro-specific feature.As part of this, the
ServerandServerOptstypes were also renamed to
HandlerandHandlerOptsrespectively. Users who embedriveruiinto
their Go app as a handler will need to update theirriverui.NewServer
initialization toriverui.NewHandlerand to provide anEndpointsoption in
riverui.HandlerOpts, usingriverui.NewEndpoints(client, nil)for the OSS
riveruifunctionality orriverproui.NewEndpoints(client, nil)with a
riverpro.Clientforriverprofunctionality:handler, err := riverui.NewHandler(&riverui.HandlerOpts{ // For OSS riverui: Endpoints: riverui.NewEndpoints(client, nil), // Or, for riverpro: Endpoints: riverproui.NewEndpoints(client, nil), // ... other options })
This structure enables Pro-specific API handlers and feature flags to be added to the Pro endpoint bundle.
Users who run River UI from a Docker image can continue using the published OSS
ghcr.io/riverqueue/riveruiimages for OSS-only functionality, while those using River Pro will want to migrate to theriverqueue.com/riverprouiDocker images which are now being published. The Pro images are hosted with a Docker repository that leverages the same credentials as the River Pro Go module server. For details on how to configure this, see the River UI docs.For users who directly run the published
riveruiexecutables (published as GitHub release artifacts), there are noriverprouiequivalents; those who need one can build it directly fromriverproui/cmd/riverprouiin this repository. Alternatively, migrate to either theriverqueue.com/riverprouiDocker images or embed thehttp.Handlerin your app as shown above.As part of this change, all database queries were removed from
riveruiin favor of being implemented directly in the underlying OSS and Pro drivers. PR #379 and PR 400. -
For job kind and queue name searching, match input against substrings instead of only prefixes. Particularly for long names, this is far more convenient. PR #398.
Fixed
- Remove
__riverUiBasePathand__riverUiAssetUrlglobal functions to eliminate Content Security Policy issues. The application now uses the existing JSON configuration approach consistently for all path resolution. PR #382.
v0.11.0
v0.10.0
Added
- Added a flexible search filter UI for the job list. PR #344.
- Added
riverlogmiddleware logs to the job detail UI via a new unified attempts list, rather than separate lists for errors, attempted by, and now logs. PR #346. - Added a
RIVER_JOB_LIST_HIDE_ARGS_BY_DEFAULTenv andServerOpts.JobListHideArgsByDefaultsetting to give the backend the ability to choose to hide args from the job list by default. This is useful if your args tend to be encoded or encrypted and not worth looking at in bulk. It can also be overridden in a new settings screen in the UI. PR #354.
Changed
- Job args and metadata on the job detail view now use an interactive collapsible JSON view rather than pretty-printing the entire payload on screen. For large payloads this is a better UX and doesn't disrupt the page flow by default. PR #351.
Fixed
- Corrected links on queue list page to use the TanStack Router
<Link>component instead of raw<a>tags so that settings like path prefix will be respected. PR #353.