Summary
stack54 build can emit a terminal Build failed diagnostic while returning exit code 0. This makes it possible for CI or deployment tooling to accept a failed or partial build.
Impact
Consumers cannot rely on the process exit status alone to detect a failed production build.
Expected behavior
If the build reports its terminal Build failed diagnostic, the process should exit non-zero (or expose a documented machine-readable failure signal).
Reproduction / evidence
A downstream project currently wraps stack54 build, captures stdout/stderr, and treats a terminal case-insensitive Build failed message as authoritative because the exit code may still be 0. See: https://github.com/joshamaju/relay/blob/master/scripts/build.mjs
Stack54 version: 0.15.0
Vite: 7.3.6
Node: 25.x
Please let me know if a minimal fixture or raw build log would help.
Summary
stack54 buildcan emit a terminalBuild faileddiagnostic while returning exit code 0. This makes it possible for CI or deployment tooling to accept a failed or partial build.Impact
Consumers cannot rely on the process exit status alone to detect a failed production build.
Expected behavior
If the build reports its terminal
Build faileddiagnostic, the process should exit non-zero (or expose a documented machine-readable failure signal).Reproduction / evidence
A downstream project currently wraps
stack54 build, captures stdout/stderr, and treats a terminal case-insensitiveBuild failedmessage as authoritative because the exit code may still be 0. See: https://github.com/joshamaju/relay/blob/master/scripts/build.mjsStack54 version: 0.15.0
Vite: 7.3.6
Node: 25.x
Please let me know if a minimal fixture or raw build log would help.