Environment
- gh 2.96.0 (2026-07-02), gh-stack v0.0.4, git 2.46.1, macOS 26.6
Summary
gh stack submit --auto marked two already-open draft PRs as ready for review, which fired review requests to five CODEOWNERS. I did not pass --open.
The help text is explicit that this should not happen:
New PRs are created as drafts by default. Use --open to mark them as ready for review.
Repro
gh stack submit --auto # creates PR A and PR B as drafts
gh pr view A --json isDraft # => true, as documented
# ... make no change to the branches ...
gh stack submit --auto # second run, still no --open
gh pr view A --json isDraft # => false
Second run's output, which gives no indication it changed draft state:
Checking stack state...
Pushing to origin...
PR #A for branch-a is up to date
PR #B for branch-b is up to date
✓ Stack updated on GitHub with 2 PRs
✓ Pushed and synced 2 branches
The PR timeline confirms it:
<t> ready_for_review by=<me>
<t> review_requested by=<me> x5
Those timestamps match the second submit to the second. I made no other change in between, and did not touch the web UI.
Why it matters
Marking a PR ready is not a local operation. It notifies every CODEOWNER, and on a repo with required reviewers it moves the PR into other people's queues. Doing it on an update pass, from a flag whose documented meaning is "use auto-generated titles without prompting", is surprising in a way that cannot be undone: gh pr ready --undo restores draft state but the notifications have already gone out.
It also makes submit unusable as an idempotent "sync my stack" command, which is what its output implies it is when everything is already up to date.
Expected
submit should only change draft state when --open is passed. If the current behaviour is deliberate for update passes, the help text should say so, and the output should name the change instead of printing is up to date.
Environment
Summary
gh stack submit --automarked two already-open draft PRs as ready for review, which fired review requests to five CODEOWNERS. I did not pass--open.The help text is explicit that this should not happen:
Repro
Second run's output, which gives no indication it changed draft state:
The PR timeline confirms it:
Those timestamps match the second
submitto the second. I made no other change in between, and did not touch the web UI.Why it matters
Marking a PR ready is not a local operation. It notifies every CODEOWNER, and on a repo with required reviewers it moves the PR into other people's queues. Doing it on an update pass, from a flag whose documented meaning is "use auto-generated titles without prompting", is surprising in a way that cannot be undone:
gh pr ready --undorestores draft state but the notifications have already gone out.It also makes
submitunusable as an idempotent "sync my stack" command, which is what its output implies it is when everything is already up to date.Expected
submitshould only change draft state when--openis passed. If the current behaviour is deliberate for update passes, the help text should say so, and the output should name the change instead of printingis up to date.