v0.0.11
-
Added newer models to choose from for API key Insight runs, among them Claude Opus 5.5 and Fable 5.1, GPT-6 Sol, Luna, and Astra, and Grok 4.7. Providers retired some models, among them the Kimi K2 models on Moonshot and DeepSeek V4 Flash; a saved model that is no longer listed needs picking again in the run dialog.
-
Brief Flow can show two new views: state, for a change to the values of a status field and the transitions between them, and contract, for an exported signature or fields shown old and new. Citation chips now appear only on changed steps, as the hunk alias with the file on hover, in their own column, and long steps stay on one line with the full text on hover. A Flow tree nested deeper than three levels is cut to three levels instead of failing the whole Brief. #445
-
Brief Reach is now Blast radius: what this pull request could affect in files it doesn't change. It checks every changed export, lists names removed but still mentioned first, then changed names by how often they are mentioned, and shows each mention's function, kind (call, type-only, import), and line. Names nothing outside mentions fold into one line, and No matching test no longer lists docs or config files. #445
-
Brief Start here files open in the Diff tab at the reviewed revision, and the Insights tab returns to the reader last shown. Show full notes expands Shape notes, Reach rows that found nothing fold into one line, and the citation line says whether cited hunks were found rather than claiming the Brief is verified; a Brief with no Flow reads "no hunks cited". #441
-
Fixed inline Analysis finding cards on the Diff tab printing Markdown, such as backticks, as plain text. #440
-
Fixed the header and Analysis Findings not following GitHub for up to a day after the maintainer deleted a pending review on GitHub and then started a new one in Patchdesk. The background update check no longer waits for threads added to the deleted pending review, so the Review updates on the next check.
-
Fixed a Review whose pull request was closed on GitHub still showing Merge · Ready, Watch, and Start a review after Watch was refused with "Closed pull requests cannot be watched." The refusal now checks GitHub, and the header turns to Merge · Closed (or Merge · Merged) once GitHub confirms it. The Watch error now sits under the header buttons instead of pushing Start a review onto its own line. #348
-
Fixed Markdown-syntax screenshots, such as the ones in a before/after table, never opening the full-size view. An image that is the only content of its paragraph or table cell now zooms on click, and so does a link whose only content is one image, Markdown or HTML; the full-size view then has an Open link button for the link. Images in a line of text or a row of badges still behave as before. #348
-
The Pull requests inspector shows a Merge fact beside Checks, worded like PR overview Merge readiness: Ready to merge, Blocked · Conflicts +1, Draft, Unknown before GitHub reports mergeability, or Merged. It applies the Review's readiness rule to the listing's merge state, so a branch GitHub's rules block reads Blocked in both places, and a pull request is no longer counted Ready to merge while its Review says Blocked. #348
-
More status badges show an icon beside their word. Conversation review verdicts use the same icons as the Reviewers rail, the Analysis verdict badge uses the approved, changes-requested, or commented icon, Threads rows mark Open, Resolved, Outdated, and Pending with their own icon, Needs your reply carries a reply arrow, and in Pull requests rows Merged has a merge icon and Brief the green check Insight status uses. #348
-
Fixed the header and Analysis Findings still showing Finish review and Added until a reload after the background update check found the pending review deleted on GitHub. They now follow GitHub on the next check. The notice that a Finish sent nothing now appears only for that result, also names a different pending review found on GitHub, and clears when Finish review reopens or a Refresh completes; reopening Finish review no longer shows an earlier error. #419
-
Fixed Finish review locking the Review when its pending review had been deleted on GitHub. Submit review now checks GitHub first; when the pending review is gone it sends nothing, returns the added Findings to Add to review, and says the pending review no longer exists. #419
-
Fixed Analysis Findings staying Added, with Finish review still shown, after their pending review was deleted on GitHub. Refresh now returns those Findings to Add to review and the header to Start a review once GitHub confirms the pending review is gone; a failed or incomplete GitHub read changes nothing. #419
-
Fixed Add all to review continuing after the Review changed mid-batch. When the session, reviewed head, patch, or Analysis run changes, the batch stops, the Finding being written is not counted as added, nothing after it is written, and the Findings card reads "Review changed: added 1 of 3" beside the button. #418
-
A merged or closed Review no longer shows Updates available in its header. PR overview Merge readiness reads Draft in muted text, where it read a red Blocked, when the draft state is the only blocker. Browse tree file names cut from the start keep whole letters after the "…". Settings → Data & recovery shows the Logs size with no active workspace, sizes such as 999,950 bytes read "1.0 MB" where they read "1000 KB", and Diagnostics log metadata is cut to 240 characters again, shown in full on hover. Below 1280 px the Pull requests inspector drawer opens only from its toggle, closes when the window crosses 1280 px, and no longer hides the wide-window inspector when closed. #348
-
Coloured borders now show where they were meant to. The selected pull request row and the active Walkthrough chapter carry a purple left bar, Brief Start here has a purple edge, PR overview blocker cards and the Merge and Checks chips are edged in their status colour, and text fields and selects use the input border. Ghost buttons, such as the titlebar icons, Regenerate, View evidence, and the Diff toolbar controls, no longer draw an outline. #348
-
Insights can now be generated in Vietnamese. The Insight run dialog has a Language select (English or Vietnamese) beside Reasoning; it defaults to English and remembers the last choice for each Insight type, like the model. A Vietnamese run writes Brief notes and Start here, Walkthrough chapters and prose, and Analysis summaries and Findings in plain Vietnamese, keeping paths, identifiers, and Flow steps as written, and the header meta line names the language, as in "Generated 7h · Vietnamese". English runs send the same prompt as before, and results generated earlier read as English. #411
-
Insight states now read as icons. On the Brief / Walkthrough / Analysis tabs a current result shows no mark, Running a spinner, Outdated an amber clock, and Failed a red circle-x, with the word on hover; an Insight not run yet shows a dimmer tab name. PR overview Review status and the Pull requests inspector chips show the same icon beside the word, a current result shows only a green check, and Not generated now reads Not run everywhere. Loading spinners are now a thin ring with a faint track. #348
-
Settings → Data & recovery now shows disk use: a Storage card lists Cache, Local review data, and Logs, each with a one-line description and its size, such as "Cache · 246 MB", and the sizes are measured again after a clear. Each clear button sits at normal width beside its row, and Logs is listed read-only. On General, every setting is one row with its selector on the right at one shared width, and the master notifications switch reads Send notifications under the Notifications heading. On Workspace, the Account row stays in place while
ghis checked, showing the configured account read-only, and an empty Rule paths list no longer draws an empty box. In Diagnostics, log rows keep the metadata in one column with long text cut to one line and shown in full on hover, the tabs drop their repeated card headings, and an empty tab no longer shows a scrollbar. #348 -
Relative times now read one short way across the app, such as "checked 2m", "Generated 7h", and "3d", where they mixed "2 s ago", "14 d ago", and "7d". In the Visited pull requests column a row's age reads "visited 1m" instead of "opened 1m", so it is not mistaken for when the pull request was created, and the strip reads RECENT in the same capitals as the workspace label. The Navigate palette (⌘K) now opens near the top of the window, so its search field stays put while results filter. The More filters popover title reads as a small heading above its field labels, the Diff file header shows a zero count such as "-0" muted, the Conversation rail drops its "as of your last refresh" caption, and the Threads tab reads "No conversation threads on this revision." #348
-
Insights read more cleanly. Brief Start here paths wrap after a
/, so file names stay whole, and Analysis Finding titles rendercodeinstead of showing raw backticks. In the Walkthrough, the chapter counter stays on the Chapters line as "1/12 · 0 of 12 reviewed", and each cited hunk names its file once, in the diff's own file header, with the hunk id beside View. Analysis evidence, the Brief hunk preview, and the suggested-change preview drop the toolbar whose View and Context unavailable controls did nothing there. The hollow Not generated dot and white label dots such as wontfix now have a visible edge in both themes. #348 -
The Diff tab's Browse tree now shortens long file names from the front, so sibling files such as
sidebar-variant-a-tree.tsxandsidebar-variant-b-queue.tsxread differently, and a collapsed folder path such assrc / renderer / src / componentskeeps its last folders whole. Commit subjects on the Commits tab wrap to two lines with the full subject on hover, the Merge conflicts notice no longer runs past the pane's right edge, and the active All files or Selected segment is now the highlighted one where the Scope button used to look pressed. #348 -
Fixed a merged pull request reading Ready to merge with "No blockers or warnings." in PR overview. A merged or closed Review now reads Merged or Closed there with no blocker cards or merge controls, drops "Up to date with GitHub · checked 8 d ago" from the header and the Revision row, and hides the Checks chip and the Analysis CI badge when its checks are unknown. The Merge chip now counts causes beyond the first, as in "Merge · Blocked · Draft +1", and a draft reads as a neutral card instead of a red error. #348
-
The Pull requests inspector now shows Failed for an Insight whose last run failed, where it read Not run, and lists the chips Brief, Walkthrough, Analysis like the Insights tabs. The Merged filter no longer wraps its inspector toggle onto an empty second row or repeats a Merged badge on every row, row badges now follow the title's last word, and a zero change count such as "-0" reads muted instead of red or green. #348
-
The Insights tab now opens with one row above the document: the Brief / Walkthrough / Analysis tabs, with the generated time, provider, model, and Regenerate at the row's right end. Tab states read as muted text after a small dot instead of bordered pills, and a merged or closed Review no longer repeats "Insights cannot be generated" under the header's Merge chip. #348
-
Fixed Try again, Run for latest revision, and the Brief's Generate walkthrough showing on a merged or closed Review, where the run could never start. They are now hidden there, like Generate and Regenerate. #348
-
Added Add all to review to the Analysis Needs attention card. It confirms once, listing every Finding it will add, then adds them one at a time with progress and a Stop adding button; it stops at the first failure and keeps Findings already added. #356
-
A long title in the Visited pull requests column now scrolls to its end and back after half a second of hover or keyboard focus, so it can be read without opening the pull request. Titles that fit stay still, and nothing moves when the system asks for reduced motion. #402
-
The Visited pull requests column now sits on the window background with no border, and its merged and closed markers read in muted grey after a purple or grey dot instead of bright blue and red. The open Review's row has a solid fill and a bold title, so it stands apart from a hovered row. #399
-
Changing Check watched pull requests in Settings → General → Notifications now takes effect at once: the next check comes one new interval after the change, with no restart. #365
-
Trimmed the Brief's Untested reach list to file paths. Each row repeated "changed, no test in this PR names it", which the row's own hint already says. #348
-
Fixed Walkthrough reviewed markers and the current section going back to their earlier state after leaving the Walkthrough for another Insight or tab and returning in the same Review. #348
-
Fixed a Markdown file Preview showing its file path nowhere on screen. The path now heads the preview and stays in view while it scrolls. #348
-
Fixed a draft pull request reading "Merge · Blocked · Review" or "Merge · Blocked · Conflicts" and PR overview hiding that it is a draft. An outdated head, a closed pull request, or a draft now leads the Merge chip and Merge readiness, followed by GitHub's reasons and then Patchdesk's own blockers, such as a high-severity Finding. #348
-
Fixed Settings and Diagnostics opening on top of each other. Each now stays closed while the other is open, whether asked for from the Help menu, ⌘,, or ⌘K. #348
-
Fixed ⌘K opening Navigate while typing in the Browse search field, which appears for pull requests with 500 or more files. #348
-
Fixed a disabled switch or checkbox looking enabled, such as Split view in View options when the pane is too narrow. It now draws faded with a not-allowed cursor. #348
-
A merged or closed Review no longer offers Regenerate on a saved Insight, or Add to review, Add suggestion to review, or Dismiss on an Analysis Finding, or Mark section reviewed or Mark Support reviewed in a Walkthrough, all of which it refused; reviewed markers saved earlier stay visible; the line explaining that Insights cannot be generated stays. A Finding already Added or Published no longer offers Dismiss. #348
-
Fixed an Insight run failing to start when its saved Brief, Walkthrough, or Analysis record was unreadable. The run now replaces the record, as ADR 0019 describes; a disk read error still stops it. #348
-
Fixed a review or summary write that GitHub refused leaving the Review locked with no notification when Patchdesk then failed to save the refusal. It now posts the GitHub writes are paused notification, as a merge already did. #348
-
Logs and Review activity moved out of Settings into a new Diagnostics overlay, opened from Help → Diagnostics… or the Diagnostics command in ⌘K. Settings now has General, Workspace, and Data & recovery; a reload that had Settings open on Logs reopens it on General. #364
-
Fixed the Diff's single-key shortcuts taking over the Browse search field, which appears for pull requests with 500 or more files. Typing
n,p,v,,,.,[,],{, or}there now enters the letter instead of moving through the Diff or toggling Viewed. #357 -
Fixed Mark all viewed and Show all clearing the Viewed marks on files the Scope picker hides. They now change only the files the Scope picker shows. #146
-
Inline comments in a single commit's diff are available only on the head commit's new lines; an older commit's header says "Comments are available on the latest commit or All files." Before, a line that later commits moved could post its comment on a different line of the head. #359
-
The Diff toolbar offers Since your review beside All files and Selected once you have submitted a review on an older head. It shows only the changes pushed after that review, with the same file tree, keys, and inline conversations; it is disabled with the reason when there are no new commits or a force-push removed the reviewed commit. #359
-
The Pull requests GitHub: chip now shows how long ago the list was read, such as "GitHub: checked 26 min ago", in place of "Aged" and the separate "Updated … ago" line; it stays the Refresh control. A column with nothing in it on the current page, such as Labels, is hidden and its width goes to the others, and Previous, Next, and Rows per page hide on a short single page. Visited rows label both times, as in "#347 · opened 28m" and "merged, seen 7h". #363
-
The Review header keeps one layout for every pull request state: the status chips sit under the title and Refresh ends the meta line. A merged or closed Review states that once, in the Merge chip, and its Insights draw no disabled Generate button. Freshness reads in plain words, such as "Up to date with GitHub · checked 7 h ago" and "Generated 7 h ago", in place of "Current" and "retained". #361
-
Saved Viewed marks in the Diff. Files marked Viewed stay marked after leaving the Review, switching Reviews, or restarting Patchdesk, and a new head starts with none viewed. #358
-
In the Diff with All files chosen,
nandpjump to the next and previous file not marked Viewed, wrapping at the ends, andvtoggles Viewed on the current file. The All files tooltip lists the new keys. #357 -
Split view now draws as unified while the Diff pane is too narrow for two readable code columns, and returns when the pane widens. The saved choice does not change; View options shows Split view disabled with the reason "Pane too narrow". #146
-
The Diff shows each file path once, in its file header; the "Review snapshot · GitHub writes require confirmation" line is gone, and the navigator toggle moved into the toolbar, so the bar above it appears only for a selected commit. The toolbar shows a count such as 3 of 15 viewed beside Mark all viewed, and the All files tooltip lists the file, change, and comment keys. In Browse, joined folder rows keep their last folder whole, every row shows its full path on hover, and folder rows no longer carry a change dot. #146
-
The Analysis Needs attention card and the verdict card now show progress as X of Y handled, counting Findings added to the review, published, or dismissed, in place of "N items need attention". An added Finding reads Added or Published; the "actionable" and "pending review" labels are gone. A dismissed Finding collapses to one line with its reason and expands on click or Enter, and Regenerate is a secondary button. #147
-
A pull request with no CI now reads No checks on the Review header, in the Pull requests CI column, and in the inspector, instead of Unknown. Unknown now means Patchdesk could not read the checks. #355
-
The Review header's Merge control now names why a merge is blocked, such as Merge · Blocked · Draft or Merge · Blocked · Conflicts, using the first reason PR overview lists under Merge readiness. #354
-
Navigate (⌘K) now finds a pull request by number or title. Typing
345or#345offers Open #345 in the Selected repository, and title words list matching pull requests from the Visited column with theirowner/repo#number. Both open the same way as a Pull requests row. #353 -
Conversation comment and review times now read as an age, such as "3 d ago", instead of a raw timestamp. Commit rows in the Diff's Commits tab and the selected commit's header use the same age wording, and all of them show the exact date and time on hover. #148
-
The GitHub writes are paused notification now also covers a merge or a Finish review submission whose outcome Patchdesk could not confirm. It follows the same rules as the other write notifications: nothing while Patchdesk is focused on that Review or while Notifications is off. #266
-
Fixed a merge GitHub confirmed being reported as Merge not confirmed when Patchdesk then failed to save the merged Review or clear its merge record. The Review now shows Merged, the merge-completed notification is posted, and the failed local step is logged and finished by startup recovery. #349
-
Saved Analysis Verification ticks. A ticked step now stays ticked after switching Insight tabs, leaving the Review, or restarting Patchdesk, and a regenerated Analysis starts unticked. The "Ticks are not saved" note is gone. #352
-
Removed the Request Brief, Request Analysis, and Request Walkthrough buttons from the Pull requests inspector. Its Insight chips stay as a read-only readiness line, and Insights run from the Review where their results are read. The inspector toggle at the end of the filter bar now shows a panel icon and a tooltip. #351
-
Removed the Overview tab from Insights. Each Insight tab already shows its status, and Scope stays in the header gauge, the Brief side column, and the Diff toolbar's Scope picker. Insights now opens on the first of Brief, Walkthrough, and Analysis that has a result, and on Brief when none has one; an Insight you opened last still wins. #350
-
Removed the Review tab from Settings. It set only an API-key model and reasoning level for Analysis, could not show or pick the Codex CLI account, and a change there switched a Codex Analysis default back to API key. Brief, Analysis, and Walkthrough each remember the provider, model, and reasoning last confirmed in their run dialog.
-
Shortened generated Analysis text by limiting summaries and finding prose. The change summary now describes the patch, the verdict summary explains the decision, and findings put the symptom and cause in one explanation. Older saved Analyses remain readable. #344
-
Trimmed the app's own prose. Descriptions that only restated their heading are gone from Pull requests, Settings, the first-run checklist, the Review header, PR overview, the review dialogs, and the Insight panels; status and failure messages now state the cause and at most one action; the Insight run dialog keeps only the selected model's list price; and the sign-in, unconfirmed-write, rate-limit, and blocked-write messages for comments, reviews, labels, reviewers, assignees, drafts, base branch changes, merges, and Findings each share one wording.
-
Added Add suggestion to review for an Analysis finding that carries exact replacement code for the lines it cites. The finding first shows a read-only Suggested change preview of those lines against the replacement, drawn as a diff like its evidence, and one press adds a GitHub review comment holding the finding's comment and a single
suggestionblock, through the same pending review, receipts, locks, and Check GitHub again recovery as any other finding. Patchdesk keeps a replacement only when it checks out against the diff the Review represents — mapped, on the new side, inside one hunk, unfenced, and at most 4096 bytes — and a replacement that fails that check falls away while the finding keeps its ordinary Add to review. Patchdesk never edits the code, never touches your checkout or the pull request branch, and sends nothing until you press. After you submit the review, GitHub offers the author Apply suggestion or Add suggestion to batch. #316