Warn on config pull when the installed SDK runner is outdated#1003
Open
futurepastori wants to merge 2 commits into
Open
Warn on config pull when the installed SDK runner is outdated#1003futurepastori wants to merge 2 commits into
futurepastori wants to merge 2 commits into
Conversation
A customer on CLI v5.23.3 (which contains the volume rendering fix from #989) still pulled configs with volumes missing. The renderer, the SDK graph, and the server serialization all handle volumes; the failure is version skew: config pull runs the project-installed railway SDK, and pre-3.4.0 versions emit volume-less graphs with nothing flagging the omission. railway-ts-sdk now stamps every runner response with sdkVersion; pull warns when the field is absent (any pre-handshake SDK) so silent resource dropout becomes a visible upgrade prompt. Also adds the missing renderer regression test covering volume declarations, name collisions, database volumes, and attachments. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Closes the loop on the enterprise report "volumes listed in resources but no generated volume(...) declaration", reproduced on CLI v5.23.3 — a version that already contains the volume rendering fix (#989).
Root cause
Not the renderer: a new regression test in this PR proves
render_graph_as_railway_tscorrectly declares and references volumes across the suspect shapes (volume name colliding with service name, database volumes, unattached volumes). Not the SDK graph (volumes emitted since v3.4.0) or backboard serialization either.The failure is version skew with no handshake: every
railway configcommand executes whicheverrailwaypackage the project has installed (resolve_runner→ projectnode_modules),config initnever installs or pins it, and a pre-3.4.0 runner emits volume-less graphs that the CLI renders without any hint that resources were dropped. The same skew can silently mis-diff plan/stage/apply.Fix
Companion SDK PR (railwayapp/railway-ts-sdk#45) stamps every runner response with
sdkVersion. This PR checks it on every runner invocation (pull, plan, stage, apply, current) and warns when the field is absent — which precisely identifies every pre-handshake SDK. Printed once per invocation, on stderr so--jsonoutput stays clean:Also adds the previously-missing renderer regression test and a response-deserialization test for the new field.
🤖 Generated with Claude Code