fix: bump railpack to v0.36.4 so Vite server apps deploy - #5
Merged
Conversation
TanStack Start apps failed with `"/app/dist": not found`: detection saw Vite, concluded static site, and looked for a dist the app never produces. TanStack Start detection landed upstream in railpack v0.36.0, thirteen minor versions ahead of the v0.23.0 we vendored. - railpack v0.23.0 -> v0.36.4 (moby/buildkit v0.28.1 -> v0.32.2 with it) - NewBuildGraph gained a noCache arg, so --no-cache now reaches the graph - GenerateBuildPlan now returns an error for transient failures only; report those differently from a deterministic planning failure - RAILPACK_VERSION is read from build info, so it cannot disagree with go.mod - the plan step now states the static-site assumption and how to override it, before the build that would fail on it - dependabot gives railpack its own weekly PR rather than a grouped bump - detection tests over TanStack Start (with and without a start script) and plain Vite fixtures Closes NIT-1655. Also covers NIT-1230, whose closed PR #3 hand-rolled the detection upstream now does.
Framework detection is railpack's to test. Keep the tests covering our own handling of the plan it produces: the static-site warning, the output dirs it names, and the version we report.
davemooreuws
approved these changes
Aug 14, 2026
tjholm
requested changes
Aug 14, 2026
tjholm
left a comment
Member
There was a problem hiding this comment.
I'd remove the additional log out from the output and move into a separate change or look at the PR for provenance logging, and update the logging there
Per review: the version bump should land on its own, and node-specific guidance does not belong in the hot path for every build. The warning is better placed alongside package analysis that can name the framework it actually found.
tjholm
approved these changes
Aug 14, 2026
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.
TanStack Start apps failed to deploy with
"/app/dist": not found— detection saw Vite, concluded static site, and looked for adistthe app never produces. TanStack Start detection landed upstream in railpack v0.36.0, thirteen minor versions ahead of thev0.23.0we vendored.railpack v0.23.0 → v0.36.4(pullsmoby/buildkit v0.28.1 → v0.32.2)NewBuildGraphgained anoCachearg, wired to BuildKit'sno-cacheopt, so--no-cachenow reaches the build graphGenerateBuildPlannow returns an error for transient failures only (mise unreachable); those are reported differently from a deterministic planning failureRAILPACK_VERSIONis read from build info instead of a constant, so it cannot disagree with go.modVerified locally against TanStack Start fixtures: with a
startscript →node .output/server/index.mjs; without one (the@tanstack/cliscaffold) →npx srvx --prod -s ../client dist/server/server.js, whichv0.23.0could not do at all. Plain Vite still plans as a static site. Those fixtures aren't committed — framework detection is railpack's to test; the tests here cover our own handling of the plan it produces.Not verified end-to-end through BuildKit:
make dry-rundoesn't work on macOS (buildkitd dies withchmod /run/buildkit/buildkitd.sock: invalid argumenton the bind-mounted socket, andbuildctlisn't installed). Pre-existing and unrelated; worth its own issue. Worth deploying something real againstghcr.io/nitrictech/sugapack:pr-5before merge.Closes NIT-1655. Also covers NIT-1230, whose closed #3 hand-rolled the detection upstream now does.