Skip to content

feat(deck): add close, reopen, convert-to-draft and copy link to the row menu - #48

Merged
dash0-dev[bot] merged 5 commits into
mainfrom
feat/row-menu-close-pr
Oct 9, 2026
Merged

dash0-dev[bot] merged 5 commits into
mainfrom
feat/row-menu-close-pr

Conversation

@dash0-dev

@dash0-dev dash0-dev Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Right-clicking a PR offered every triage verb but none of GitHub's own PR actions — there was no way to close a PR from Mainline. The row menu now carries the standard PR actions too, and Postponed and Done rows (which had no right-click menu at all) get one.

Changes

  • Close PR — new closePullRequest mutation. Write-gated, NSAlert confirm ("Close … without merging?"), destructive role, set apart at the bottom of the menu. No keyboard binding on purpose.
  • Reopen PR — new reopenPullRequest mutation, shown instead of Close for a closed-but-unmerged PR (a pinned one in the deck, or one in Done). Confirmed like Close.
  • Convert to Draft — new convertPullRequestToDraft mutation, shown on open non-draft PRs as the inverse of Mark Ready. Mirrors Mark Ready: write-gated, fires immediately, plain toast.
  • Copy Link — copies the PR's GitHub URL (always GitHub, whatever the open target).
  • Open on GitHub — shown only when the open target is Linear, since the primary item then reads "Open in Linear" and GitHub was unreachable from the menu.
  • Postponed rows now use the same menu, with Resume in place of Later.
  • Done rows get a small menu: open, open on GitHub, copy link, copy branch, and Reopen for closed-unmerged PRs.
  • Menu regrouped into write verbs / triage / view & open / copy / close, each in a Group so no builder keeps growing.
  • The three new write actions go through WriteAction → PRManager.performAction with the same telemetry (write.action = convert_to_draft / close / reopen), failure alert, and post-action refresh as Approve/Merge. A closed PR drops out of the open set and lands in Done on that refresh; a reopened one returns.
  • The write-actions-disabled alert is now one shared helper with copy that covers every write verb.
  • In-app copy: the Settings toggle now reads "Enable write actions" with a caption listing every write action, and the privacy sheet and the mainline.write_actions counter description name all seven actions.
  • Docs: docs/actions.md, docs/keyboard.md (row menu layout), docs/settings.md, docs/telemetry.md, README, CLAUDE.md (Write actions section + architecture tree).

Context

  • Requested because Close PR was missing from the right-click menu, along with "all of the default interactions".
  • Not verified locally: written from a Linux sandbox with no Swift toolchain; CI's Debug smoke build is the compile check and passes. The menus have not been clicked through on a running build.
  • Known behavior, not new: a reopened PR re-enters the open set as a .newPR transition, same as any PR that returns to the search results.

mthines and others added 2 commits October 9, 2026 06:58
…row menu

Right-clicking a PR offered the triage verbs but none of GitHub's own PR
lifecycle actions. The row menu now also carries Close PR (confirmed,
write-gated, destructive role), Reopen PR for a closed-unmerged PR,
Convert to Draft as the inverse of Mark Ready, Copy Link, and Open on
GitHub when the open target is Linear. Postponed rows get the same menu
with Resume in place of Later, and Done rows get open/copy plus Reopen.

New GraphQL mutations: closePullRequest, reopenPullRequest,
convertPullRequestToDraft, routed through WriteAction/performAction with
the same telemetry and failure alert as the existing write actions.

Co-authored-by: dash0-dev[bot] <257284812+dash0-dev[bot]@users.noreply.github.com>
… actions

Co-authored-by: dash0-dev[bot] <257284812+dash0-dev[bot]@users.noreply.github.com>
@dash0-dev

dash0-dev Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor Author

✅ No issues found

No code changes since 7ab9359. The PR body was edited to list the in-app copy changes, which clears the last description warning; both earlier threads stay resolved and CI is green.

Progress: open review threads 1 → 1 → 0 → 0 across the last 4 reviews

Review details
Gate Status Details
Description vs. code ✅ Body edited after the last run now lists the in-app copy edits: Settings caption, privacy sheet, counter text.
Prior review feedback ✅ Earlier review comments are resolved.
Documentation ✅ Docs, CLAUDE.md, README and in-app copy cover every new action and both row menus.
Self-review signals ✅ No debug logs, leftover TODOs, or unreviewed stubs.
Code review ✅ The multi-lens review found no blocking issues.

Found

Quality — produced 0 → posted inline 0 · cleared 0 · carried forward 0 · deferred 0 · below-bar 0

Run

incremental · 0 lines in delta · tier deep · depth checkout
Integrations — none
Memories — skipped (zero-delta fast path)

Nothing to report — standards (skipped), optimality (skipped), measurability (skipped), severity, reach diagram (impact graph found no consumer or importer), 0 files skipped.

pr-reviewer · commit 7ab9359 · no code changes since 7ab9359, gate checks only · how these findings are produced · updated Oct 9, 2026 7:57am UTC

Comment thread Mainline/Mainline/Services/TelemetryService.swift
…vacy and settings surfaces

Addresses the pr-reviewer bot's comment: #48 (comment)

Refs: #48
Co-authored-by: dash0-dev[bot] <257284812+dash0-dev[bot]@users.noreply.github.com>
Comment thread docs/keyboard.md Outdated
mthines and others added 2 commits October 9, 2026 07:40
…draft PRs

Addresses the pr-reviewer bot's comment: #48 (comment)

Refs: #48
Co-authored-by: dash0-dev[bot] <257284812+dash0-dev[bot]@users.noreply.github.com>
…bled alert

Addresses the pr-reviewer bot's advisory finding in its review report: #48 (comment)

Refs: #48
Co-authored-by: dash0-dev[bot] <257284812+dash0-dev[bot]@users.noreply.github.com>
@dash0-dev
dash0-dev Bot marked this pull request as ready for review October 9, 2026 07:59
@dash0-dev
dash0-dev Bot requested a review from mthines as a code owner October 9, 2026 07:59
@dash0-dev
dash0-dev Bot merged commit b1a3982 into main Oct 9, 2026
4 checks passed
@dash0-dev

dash0-dev Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor Author

Darkplane auto-approval is enabled for this repository (mode: Auto-approve).

Trigger an evaluation for this pull request when it is ready:

Run auto-approval evaluation

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