Show server build info on settings page - #685
Merged
Merged
Conversation
Couldn't tell which version of River UI was running or when it was last upgraded. Add a Build info section to the settings page backed by a new GET /api/version endpoint using runtime/debug.ReadBuildInfo, with -ldflags -X overrides so Docker builds report real metadata.
edwardsb
force-pushed
the
build-info-settings
branch
from
September 26, 2026 00:26
923f618 to
ec85a35
Compare
Collaborator
bgentry
reviewed
Sep 27, 2026
bgentry
left a comment
Contributor
There was a problem hiding this comment.
Yes I think this makes sense! I'm going to push a few fixes on top of this real quick before we merge.
Pro builds from this checkout currently resolve the previous River UI release, so they omit the new version endpoint and embedded UI assets. Replace that dependency with the local module during development. The separate Pro release can remove the replacement and update the version pin after River UI is released, following the existing release process.
A long-lived browser tab can show the prior server's version after a deployment because the build info query stays fresh indefinitely. Expire that query after five minutes so a later visit or window focus fetches the running server's version while nearby visits reuse the cache.
bgentry
force-pushed
the
build-info-settings
branch
from
September 27, 2026 21:00
c61e798 to
379e2cf
Compare
bgentry
reviewed
Sep 27, 2026
| import { useQuery } from "@tanstack/react-query"; | ||
|
|
||
| export function useVersion() { | ||
| // Build info is immutable for the lifetime of the server process. |
Contributor
There was a problem hiding this comment.
FYI this is a client-side staleness setting, so even if the server gets restarted & updated the client would continue reporting the stale older version. That doesn't seem desirable even if the JS UI might need updating. We don't have an app outdated warning in JS but imo this is still better than caching forever.
bgentry
approved these changes
Sep 27, 2026
bgentry
left a comment
Contributor
There was a problem hiding this comment.
@edwardsb thank you for this! Can you add yourself to the CLA here and then we'll get it merged? https://github.com/riverqueue/rivercla
Contributor
Author
|
@bgentry CLA PR is up: riverqueue/rivercla#35 — thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I couldn't tell which version of River UI I was running, and couldn't remember the last time I'd upgraded, so I added a Build info section to the settings page showing the running binary's version, commit, commit date, and Go version.
The data comes from a new
GET /api/versionendpoint backed byruntime/debug.ReadBuildInfo, with-ldflags -Xoverrides so Docker builds made from a partial source copy still report real metadata (the release workflow now computes and passesBUILD_VERSION,BUILD_REVISION, andBUILD_COMMIT_TIMEas build args). When River UI is embedded, the section notes the info describes the host application.Includes endpoint + component coverage following the existing
featurestest patterns.