feat: report the running daemon's version (status + version command)#38
Merged
Conversation
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.
Summary
Playback happens in the long-running
stackvox servedaemon, so if the daemon isn't restarted after an upgrade it keeps running the old engine while the installed package moves ahead — and engine fixes silently don't take effect. There was no way to see this: the socket was only ever probed for existence, never asked its version. This adds a version query and surfaces client/daemon skew instackvox status.Changes
{"command": "version"}daemon protocol request → replies with the running daemon's stackvox version.daemon.version()client helper returning(got_version, version_or_error).stackvox statusnow prints a skew warning when the running daemon's version differs from the installed package — e.g.daemon running 0.5.0, but 0.8.0 is installed — restart the daemon (…) to pick it up.Testing
pytest— adds a protocol-levelversiontest, adaemon.version()client test, and astatusskew-warning test;ruff check .clean.echo '{"command":"version"}' | nc -U ~/.cache/stackvox/daemon.sockreturns the running daemon's version;stackvox statusagainst a stale daemon prints the skew line.Related issues
Complements StackOneHQ/stack-nudge#124 (restart the daemon on app update) — together they close the "new client, stale daemon" skew that motivated this.