{{ message }}
Repository navigation
Conversation
A failed experimental stack start stopped the owner whenever the target had no live owner before open. When two starts raced, the one that attached to the other's owner stopped it on failure. Stack handles now report whether opening them launched the owner, and start cleanup stops only an owner it launched.
Contributor
There was a problem hiding this comment.
🤖 AI Review
Both independent reviews were available. Code inspection confirms both Claude findings: a minor cleanup gap after lazy owner relaunch and a nit in the concurrency test's completion barrier. Codex reported no findings. Tests were not run.
Findings
Stats
Claude findings: 2 · Codex findings: 0 · Confirmed: 2 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: auto · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
…eanup The concurrent start test now opens the launcher before the attacher and releases the launcher once the attacher exits with any outcome. Start side effects document that ownership is decided at open, and how to stop an owner relaunched by a failed start.
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.

Summary
When
supabase startwith[experimental] stackfails after acquiring the stack, the cleanup finalizer stopped the owner if the target had no running owner when it was resolved. That snapshot is taken beforeopen, so two concurrent starts can both see no owner. One launches it, the other attaches to it. If the attaching start then fails, for example because it rejects a service still instarting, it stops the shared owner and interrupts the start that launched it.The cleanup decision now uses ownership instead of the snapshot:
launchHostreports whether it spawned the owner it reached (launched), or attached to an owner that was already live or won the lease.Stackhandle exposes this aslaunchedOwner, set bycreateandopenwithstartOwner.supabase stack stop --stack-id <id>stops it, as documented in SIDE_EFFECTS.md.stackStart, has a secondstackStartattach to it and fail, then asserts the first completes and the owner stays live.