Skip to content

feat(service,features,desktop): close, reopen, and retitle an agent's pull request as the member who presses - #3305

Merged
luke-agent[bot] merged 21 commits into
mainfrom
feat/pull-request-close-and-title
Oct 18, 2026
Merged

luke-agent[bot] merged 21 commits into
mainfrom
feat/pull-request-close-and-title

Conversation

@dastratakos

@dastratakos dastratakos commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

A3 of the "Act on the PR" stack, stacked on #3294 (A2, the merge box). It adds close, reopen and inline title editing to the Pull request tab's header, as stage-cli has them.

What changes

  • Close / Reopen: the state pill's menu now offers Close pull request, drawn in red, beside Ready for review or Convert to draft. A closed pull request offers Reopen pull request. A merged one offers nothing.
  • Edit the title inline: a pencil appears after the title and number on hover or focus and opens a field over the title.
    • Enter or the check keeps the new words, trimmed.
    • Escape or the cross gives them up.
    • Words left unchanged, or blank, send nothing.
    • The field stays open until GitHub answers.

Each change goes through W1's seam (memberPullRequestWrite), so it is made on GitHub as the member who presses: GraphQL closePullRequest, reopenPullRequest and updatePullRequest. GitHub's refusals show in its own words on W1's line, and the tab reads the pull request again afterwards. Closing can be reopened, so it doesn't ask first; only a merge does.

Goldens

Recorded with LUKE_UPDATE_FIXTURES=1: pull-request-write-wire-pullRequestActionRequestSchema and coding-agent-view-codingAgentPullRequestActionParamsSchema gain the close, reopen and edit-title actions. The title is trimmed, non-empty, and at most 256 characters, which is GitHub's own bound.

Tests

  • Service: close, reopen and retitle are each sent as the member with the right mutation and variables (the title arrives trimmed), and a blank title is refused before GitHub.
  • Renderer:
    • an open pill offers Close and a closed one Reopen, each sending its action;
    • the title field: Escape and unchanged words send nothing, Enter sends the trimmed words, and the field closes once GitHub answers;
    • W1's pill-menu assertions now include Close.

Checks

The full pnpm check:affected runs out of memory in the sandbox. I ran the parts separately instead, and all passed: per-package tsc, oxlint, biome, knip, and the affected vitest files.

Screenshots follow in a comment.

Made with Luke


Devin Review


Summary by cubic

Adds close, reopen, and inline title editing to the Pull request tab, alongside a merge box that offers the merge action available from the pull request's current state. Every change is made on GitHub as the member who presses, through the existing write seam.

  • The state pill's menu offers Close pull request for open pull requests, drawn neutral as GitHub draws it, and Reopen pull request for closed ones; a merged one offers nothing.
  • The title's pencil opens an inline field: Enter saves the trimmed title, Escape or unchanged text sends nothing, the field keeps its Escape to itself and waits on composing input, and stays open until GitHub answers.
  • The merge line offers Merge, Enable auto-merge, Disable auto-merge, or Remove from queue depending on state, its presses and method chevron now @luke/ui's Button and SplitButton; a merge asks first and targets the head that was read, and a question left behind goes with the panel as it hides.
  • The header read carries how the pull request may be merged, read in a single GraphQL query.
  • The bundle budget was re-recorded: main's renderer/panel.js was already 52 bytes over its ceiling, and this PR's additions bring it to 901,571 gzipped bytes, recording every entry as main now draws it.

Written for commit d32835e. Summary will update on new commits.

View guided diff Turn on auto-fix

Bundle budget

main already draws renderer/panel.js at 901,133 gzipped bytes, which is 52 over its 901,081 ceiling (an 858,173 baseline plus 5%). This PR adds 438 more, for 901,571 in total: close and reopen, the inline title editor, and moving the merge box onto @luke/ui's Button and SplitButton. I re-recorded it with LUKE_UPDATE_BUNDLE_BUDGET=1, which records every entry as main now draws it.

dastratakos and others added 3 commits October 17, 2026 01:47
…merging as the member who presses

The header's merge line now ends in the one thing that may be done from
where an open pull request stands: Merge by a method the repository allows
(asked first, the method chosen kept per repository), Enable auto-merge while
checks run where the repository allows it, Merge when ready on a base merged
through a merge queue, or Disable auto-merge and Remove from queue once one
was asked for. Each is made on GitHub as the member through the W1 seam, a
merge and auto-merge against the head the header read. The header's read
carries how the pull request may be merged, read in one GraphQL query on the
App's token beside it, and a blocked merge says what it waits on.

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…stion's act is red

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
… pull request as the member who presses

The pill's menu now offers Close pull request beside Ready for review or
Convert to draft, and Reopen pull request once closed. The title is edited
in place, as stage-cli edits it: its pencil opens a field, Enter or the check
keeps new words, Escape or the cross gives them up. Each is made on GitHub as
the member through the W1 seam (closePullRequest, reopenPullRequest,
updatePullRequest).

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@vercel

vercel Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
luke-web Ready Ready Preview Oct 18, 2026 5:56pm UTC

Request Review

@luke-agent
luke-agent Bot changed the base branch from main to feat/pull-request-merge-box October 17, 2026 01:55
@luke-agent

luke-agent Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

Screenshots, drawn by a throwaway harness that mounts the tab with a fake window.luke:

An open pull request's pill menu:
menu-open

A closed one's:
menu-closed

The title's pencil on hover:
title-hover

Editing the title in place:
title-edit

luke-agent Bot pushed a commit that referenced this pull request Oct 17, 2026
dastratakos and others added 3 commits October 17, 2026 01:56
…ub draws Merge

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…s GitHub draws it

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
devin-ai-integration[bot]

This comment was marked as resolved.

dastratakos and others added 3 commits October 17, 2026 02:01
…lf, and waits on an input method's word

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
dastratakos and others added 2 commits October 18, 2026 16:24
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
dastratakos and others added 3 commits October 18, 2026 16:37
…acy aliases gone

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
… aliases gone

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent

luke-agent Bot commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Rebuilt on main after the move to --luke-* roles (e3bff09). This PR now adds no legacy aliases in its CSS. Drawn by a throwaway harness:

menu-open
menu-closed
title-hover
title-edit

dastratakos and others added 2 commits October 18, 2026 16:48
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
Base automatically changed from feat/pull-request-merge-box to main October 18, 2026 17:04
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot enabled auto-merge October 18, 2026 17:09
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 18, 2026
@luke-agent
luke-agent Bot removed this pull request from the merge queue due to a manual request Oct 18, 2026
…ox's presses are @luke/ui's Button and SplitButton

A merge asked about is let go as the panel hides, its question and the
merge it held, so the panel comes back asking nothing; one already answered
finishes. The box's presses and the method chevron are @luke/ui's Button and
SplitButton, the merge in the primary tone, as the rest of the header is.

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent

luke-agent Bot commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #3294, from Devin on #3619 (c0a11c3):

  • A merge's confirmation now goes with its panel. When the panel hides, the question and the merge it held are dropped, so nothing merges and the panel comes back asking nothing. A merge already confirmed finishes. There is a test, which fails without the fix.
  • The merge box's presses and the method chevron now use @luke/ui's Button and SplitButton, with Merge kept in the primary tone.

merge
auto
auto-on
queued

luke-agent Bot pushed a commit that referenced this pull request Oct 18, 2026
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot enabled auto-merge October 18, 2026 17:34
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 18, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 18, 2026
dastratakos and others added 2 commits October 18, 2026 17:52
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
…s close, reopen, and title editing

main already drew renderer/panel.js at 901,133 gzipped bytes, 52 over the
901,081 ceiling its 858,173 baseline allows; this PR's close, reopen, inline
title editor, and the merge box's move onto @luke/ui's Button and SplitButton
add 438 more (901,571). Re-recorded with LUKE_UPDATE_BUNDLE_BUDGET=1, which
records every entry as main now draws it.

Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
@luke-agent
luke-agent Bot enabled auto-merge October 18, 2026 17:53
@luke-agent
luke-agent Bot added this pull request to the merge queue Oct 18, 2026
Merged via the queue into main with commit e5c0ed1 Oct 18, 2026
11 checks passed
@luke-agent
luke-agent Bot deleted the feat/pull-request-close-and-title branch October 18, 2026 18:04

This branch was successfully deployed

1 active deployment
Preview — d32835e5 Deployed Oct 18, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant