Conversation
|
This was referenced Oct 2, 2026
This branch has not been deployed
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.



Problem
When a process fails and is restarted automatically, its state keeps the exit code of the failed run.
project is-readytreats that old, nonzero exit code as a failure, so it reports the process as not ready even when the restarted process is running and healthy.project is-ready --waithas the same problem: it keeps waiting after the process has recovered.Fix
Reject an unsuccessful exit code only when the process is no longer running.
Everything else stays the same:
Reproduction
A process exits with code
7on its first attempt, then restarts and prints its ready log. Its state is then:{"status":"Running","is_running":true,"is_ready":"Ready","restarts":1,"exit_code":7}project is-readyfails withfailed with exit code 7.project is-readysucceeds.Tests
New regression cases cover a process that is running again after a failure:
Existing cases still cover failed completed processes and
success_exit_codes.Validation
On Linux with Go 1.26.8:
go test ./src/types -count=1— passed.make build— passed.make testrace— full suite passed.make lint— zero issues.7, restarts automatically and emits its ready log.project is-readythen succeeds, and the previous exit code is still shown in the process status.Not run: the optional Nix build, because Nix is not installed.
Notes
Fixes #558