Skip to content

Releases: kwanpham2195/patchdesk

v0.0.12

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 26 Sep 13:24
  • Added local Reviews for a coding agent's work: open the working tree, a branch, or a commit with Local review on the Pull requests screen, or from the sidebar, and review it with Diff, Analysis, Walkthrough, and Brief as for a pull request. Findings and notes on any diff line go to Local drafts; Copy as agent prompt hands them to the agent as one Markdown prompt with each path:line. Refresh reads the changes again and marks each draft Unchanged, Changed since your note, or Needs attention. Apply writes a Finding's suggestion to the working tree after checking the files have not changed since the Analysis, and Copy as PR description on the Brief copies it for your own pull request. Patchdesk does not commit or push. #458 #459 #460 #464 #466 #468 #469

  • Added a Change intent to a local Review: the task or spec the change was written against, as text or a spec file in the repository. Analysis checks the patch against it and reports a goal the patch misses, or a change the intent does not mention, as a P2 Finding; its details line says which intent it checked and when the intent changed since the run. #471

  • Changed the sidebar to show one local row per repository, named owner/repo, in place of a row for every working tree, branch, and commit Review. Clicking it opens the working tree of the branch checked out now, so after a branch switch it opens that branch's Review with its own drafts rather than refusing; the Local review picker reopens branch and commit Reviews. #479

  • Added local Reviews of a repository's linked worktrees: the Local review picker has a Checkout select when the repository has worktrees from git worktree add, so two agents working in two worktrees of one repository can be reviewed side by side. Each worktree gets its own Review, drafts, and sidebar row named owner/repo · <folder>; a worktree's Review is removed by the background sweep once the worktree is gone. #489

  • Added patchdesk mcp, an MCP server that lets a terminal coding agent such as Claude Code or Codex use Patchdesk as its review desk. The Homebrew cask links the command as patchdesk (for a DMG install, link Patchdesk.app/Contents/Resources/bin/patchdesk onto your PATH); register it with claude mcp add patchdesk -- patchdesk mcp or codex mcp add patchdesk -- patchdesk mcp, and run patchdesk mcp --check to test the connection. The agent can list the workspace's local repositories, open the local Review of its checkout with review_local (recording its task as the Change intent, shown as Intent from the agent, only when the Review has none), ask for an Insight, and read the result and your Local drafts with get_insight and get_feedback, a page at a time. Its tools cannot run an Insight on their own, Apply, edit your notes, commit, or reach GitHub. Analysis reads an intent from the agent as the goal to check, never as instructions to follow. Review before the agent commits: after a commit, a working-tree Review of a clean tree shows an empty diff (#491). The user guide shows setup and a snippet for your CLAUDE.md or AGENTS.md. #463 #506 #507 #509 #517 #518 #523

  • Added refresh_review for the coding agent: after it changes the code, the Review stays on what you are reading and the header shows Updates available; your Refresh moves it to the new code and carries your notes. #510

  • Added Agent requests on a local Review's Insights tab. An agent's run_insight spends nothing: it waits there with Run, which opens the usual run dialog with your stored provider and model, and Decline, which is final for that session. A notification "Agent asks for Analysis" announces each request, and the sidebar row shows an agent marker while a request waits or its run is active. #512 #515

  • Added a notification when an Analysis, Walkthrough, or Brief on a local Review finishes or fails, such as "Analysis finished · Working tree on feat/467 in patchdesk", adding "requested by the agent" for a run an agent asked for. #496

  • Fixed local Review copy and polish: Blast radius and the sidebar no longer say "PR" or "pull requests" on a local Review; the Diff Context control no longer reads Context unavailable when every shown file is added or deleted, since a local snapshot has the full contents; the Apply bar is left out when no Finding has a suggestion to apply; the two Remove buttons of a note and a Finding draft on the same lines have distinct names; and Copy as agent prompt, Copy as markdown prompt, and Copy as PR description keep a model title with line breaks on its heading line, with Flow views under one ## Flow section.

  • Fixed a Change intent or Local draft saved just before switching Reviews being shown on the Review switched to. #475

  • Fixed Apply on a local Review staying enabled after it was refused because the working tree changed since the Analysis. It now stays disabled with the reason beside it until Refresh. #476

  • Fixed a working-tree Review reopened after the leave dialog, or restored at launch, opening against a different checked-out branch. It is now refused with the branch named, and the launch no longer retries it. #477

  • Fixed local Reviews leaving a worktree and a refs/patchdesk/local ref in the repository for every Refresh that changed the content. Moving a local Review to a new session now removes the sessions it moved past, keeping only the patch of one a retained Insight was generated from, and the background sweep removes a local Review whose branch or commit is gone, has no Local drafts, and was last opened over 14 days ago. Removing a pull request worktree now deletes its refs too; refs left by Discard, Clear local review data, and older versions go at the next background sweep. #474

  • Fixed an open pull request Review keeping a worktree, its refs/patchdesk/reviews refs, and a session folder for every push until the pull request closed. A Refresh that moves the Review to a new revision now removes the sessions it moved past, keeping only the patch of one a retained Insight was generated from, and the background sweep does the same for every open Review. A Review with a GitHub write still being checked keeps all its sessions. #478

  • Fixed a local or pull request Review that could never open again after git worktree add failed once its checkout existed, for example a post-checkout hook that installs packages and outlasts the timeout. Patchdesk now adds review worktrees with the repository's hooks disabled and removes the worktree a failed add left behind, so the next open succeeds. #483

  • Fixed an Apply left in an unexpected state, such as after the agent wrote a file while Apply ran, locking the local Review for good: Check files kept the lock, every later Apply was refused, and its old sessions were never removed. A Refresh or reopen that moves the Review to a new session now ends that lock, marking the drafted Findings applied when the files hold the suggested change. #484

  • Fixed Analysis never receiving the pull request description it is asked to check against the patch: it said the description was absent on every pull request. It now reports a goal the description states and the patch misses, or a change the description does not mention, as a P2 Finding. #470

v0.0.11

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 26 Sep 07:44
  • 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 gh is 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 render code instead 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....

Read more

v0.0.10

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 22 Sep 15:37
  • Preserved inline pending-review drafts after GitHub safely rejects them. The failed card now shows the complete message and offers Edit draft, which restores the body and valid anchor into the canonical composer; if Refresh invalidated the anchor, Patchdesk keeps the text until another diff line is selected. Outcome-unknown writes remain locked for reconciliation and cannot be retried from the card. #339

  • Fixed Insight runs reporting a missing or mismatched Review worktree as a provider-runtime failure. The failed Insight now explains that the Review's local files are unavailable and offers Re-prepare Review, which rebuilds the same represented revision through the durable refresh lifecycle before another run. Failed command traces also keep long commands on one truncated row while preserving their duration and full text on hover. #245 #261

  • Fixed Refresh GitHub state losing ownership when GitHub preparation exceeded the desktop request timeout. Refresh now persists its operation and prepared Review before adoption, keeps visible progress while it runs, resumes the same operation after a renderer reload, and reports an interrupted or failed operation without replacing the readable Review. #264

  • Fixed closing the Insight run dialog while Codex models were loading reporting the Codex runtime as unavailable. A cancelled load is now discarded by the dialog that owned it, and reopening can load models again while genuine runtime failures remain visible. #256

  • Fixed an Insight status poll scheduling another browser timer after its Review or renderer had already been disposed. Late poll responses now stop before touching the renderer timer, preventing intermittent window is not defined failures in the full test gate. #252

  • Fixed numeric-looking assignee and maintainer search text being inferred as GraphQL numbers. Free-text searches such as 2026 now remain strings while numeric pagination variables retain their existing types. #279

  • Clarified that a Context-unavailable GitHub read affects unchanged-context expansion, while the saved patch remains visible. #275

  • Prevented new watches for merged or closed pull requests. Their inspector no longer offers Watch, and a palette attempt reports the terminal state without saving it. #269

  • Kept readable watched pull requests updating when another watch is inaccessible, while retaining the inaccessible watch for a later poll. #268

  • Improved how long every exchange with GitHub takes. Patchdesk now talks to GitHub directly for every read and every write — checks, permissions, branch rules, conversation comments, the pull request itself, its diff, its reviews and review comments, its inline review threads, its merge readiness, its commits, its labels and reviewers, the people it can be assigned to, the branches you can move it onto, the Pull requests search, and every comment, thread, review, label, assignee, reviewer, draft change, base branch change, and merge you make — rather than through the GitHub CLI, which saves a process launch and a fresh connection on each one. The GitHub CLI is still what signs you in and what gives Git your credentials, and the account each call runs as is unchanged. #276

  • Changed the macOS bundle identifier to io.github.kwanpham2195.patchdesk. macOS treats the next version as a different app, so it asks for notification permission again and forgets the saved window position. Reviews, workspaces, settings, and GitHub sign-in are kept, because they live in Patchdesk's own data folder.

  • Added marks for what changed since you last looked at a pull request. Leaving a Review records where you were; when you open it again, comments and reviews that arrived since carry a marker in Conversation, a Jump to first new button moves to the earliest one, and each thread in the Diff's Threads list shows how many of its comments are new. A row in Pull requests shows New when new commits arrived since you left its Review. Refresh keeps the marks; leaving the Review again clears them. #231

  • Added a Needs your reply marker for an unresolved review thread whose last comment is someone else's. In a Review's Threads list those threads come first and the tab shows how many there are, the { and } thread jump visits them first, and an Analysis Finding whose published thread is waiting on you carries the same marker. Replying to or resolving the thread clears it without pressing Refresh. #228

  • Added Watch for a pull request, from the Pull requests inspector, the Review header, or the ⌘K palette with a pull request reference typed in. While Patchdesk runs it checks each watched pull request every 3 minutes, or every 1, 5, or 10 from Settings → General → Notifications, and posts one notification per change: a new comment or review, a changed review decision, changed checks, new commits, or the pull request merging or closing, which also ends the watch. Nothing else refreshes: rows and Reviews still change only when you refresh, and a dot on the GitHub: badge says a watched pull request changed since. No notification is posted while the pull request is open in a Review, and clicking one opens the pull request. A workspace watches at most 20 pull requests; watched ones carry an eye mark in the Pull requests table and in the column of pull requests you have opened. #226

  • Added desktop notifications for work that finishes while Patchdesk is in the background or showing another Review. A Brief, Walkthrough, or Analysis that finishes or fails posts one, and so does a GitHub write that Patchdesk could not confirm and that now blocks further writes until you check GitHub again. Clicking a notification brings Patchdesk forward and opens that Review, on the Insight's reader for an Insight run; an unsaved draft or a write still in progress keeps you where you are, as it does for any navigation. Settings → General → Notifications turns them off, and a second switch, off by default, adds notifications when a Review finishes preparing and when a merge completes. #227

  • Added Change base branch to PR overview under Merge readiness on an open Review. It searches the branches of the pull request's base repository, marks the current base, explains that a new base can change commits, files, checks, and merge conflicts, and asks you to confirm before updating GitHub. Patchdesk then refreshes the Review against the new base: existing Insights stay and are marked outdated, and comments and Findings keep their place where their anchor still exists. An account without write access sees the confirm disabled with the reason. #117

  • Added a live command trace to a running Brief, Walkthrough, or Analysis on the Codex CLI account provider, so a working run no longer looks the same as a stuck one. The running panel says when the run is still preparing, then shows the last line of the model's reasoning summary when the model sends one, and each command Codex has run with its exit status and duration, or a spinner while it runs. A run that fails, times out, or is stopped keeps its last command list under the failure notice. Command output is not shown, and API key runs keep the spinner as before. #243

  • Added a way to ask a reviewer to look again. Every reviewer in a Review's Reviewers rail who has already approved, requested changes, commented, or been dismissed now carries a re-request control beside their verdict; one press asks that person for another review and leaves everyone else's request alone. A Review whose pull request is still a draft also says so with a Draft badge in the header, the same badge the Pull requests table shows, and its author can change that state from PR overview under Merge readiness: Ready for review publishes a draft, and Convert to draft takes a published pull request back. Only the person who opened the pull request is offered that control. #230

  • Added Your pull requests to the Pull requests filter bar, beside Awaiting review from you. It asks GitHub for the pull requests you opened, composes with the state, label, and More filters choices the way the other preset does, and carries across a repository change. Only one of the two applies at a time: choosing one turns the other off, and pressing the active one clears it. Both are also in the Navigate palette under Pull requests, where choosing one sets it rather than toggling it. If you had Awaiting review from you switched on before this release, it comes back off once; switch it on again and it stays. #229

  • Fixed an empty Brief, Walkthrough, or Analysis reader centering its message far down the available space. Empty readers now begin near the top, omit the blank document header on a merged or closed Review, and no longer draw a stray scrollbar in the Insight tab strip.

  • Fixed replying to, editing, or deleting a published comment that has since been deleted on GitHub saying Patchdesk could not reach GitHub. It now says the comment or thread is no longer there. A lookup GitHub refused, rate-limited, or never answered still says Patchdesk could not check, because none of those is evidence the comment is gone. #276

  • Changed Brief, Walkthrough, and Analysis runs on the Codex CLI account provider to accept any command requested with a working directory inside the pull request's isolated worktree. Network, stdin-write, file-change, and outside-worktree requests remain declined. This removes false refusals from Patchdesk's command allowlist while Codex's read-only sandbox still applies. #240

  • Fixed a Review staying locked after a GitHub write that had gone through, when Patchdesk could not record the write in its local journal of recent writes. Check GitHub again failed at once every time and further writes stayed blocked with no way out from inside the app. The write now finishes and the lock clears whatever happens to the journal, and a journal file that can no lo...

Read more

v0.0.9

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 15 Sep 10:09
  • Added each API key model's list price to the Insight run dialog. The Model list shows input and output price per million tokens beside every model that has one, such as $0.04 / $0.14 for Nova Micro and $5.00 / $25.00 for Claude Opus 4.6, and the confirmation line names the selected model's price with a note that your account's billing may differ. Codex CLI account models and routers without a fixed price, such as OpenRouter Auto Router, show none. #193
  • Fixed Settings → Workspace and Workspace setup on Pull requests saying GitHub authentication is required when the GitHub CLI holds an account with an invalid token beside one that works. Reviewing as now offers the working accounts. #185
  • Fixed Generate and Regenerate in Brief, Walkthrough, and Analysis sitting disabled on a merged or closed Review with no reason, which read as a broken provider setup. Each reader now says generating an Insight needs an open Review, and that retained Insights stay readable. #187
  • Fixed Reviewers on a merged or closed Review showing "Loading reviewers…" forever. It now lists the reviewers requested as of your last refresh, read-only, as Assignees and Labels already do. #186
  • Fixed the Checks control in the Review header opening PR overview on Merge readiness. It now opens with the Checks row expanded and focused, as the Merge control does for Merge readiness. #188
  • Fixed Settings → Logs filling with its own polling requests every two seconds. The panel's poll of the log stream was logging itself, burying other activity in the tail and writing a row to the log file on every poll; those requests are no longer logged. #197
  • Fixed j and k moving the wrong way in the Walkthrough. j now moves to the next section and k to the previous one, matching Vim; they were reversed. #200
  • Fixed editing, deleting, or replying to a comment, and adding or dismissing a Finding, reporting the same sentence whatever went wrong. A failure now says what happened: GitHub rate-limiting you, GitHub blocking the write, or GitHub not confirming it. That last case used to say to try again, when the write may already have gone through, so repeating it could post a reply or apply an edit twice; it now tells you to check GitHub first. #167
  • Fixed the header's collapse toggle for the column of pull requests you have opened, and the Back button in a Review, showing nothing on hover. Each now shows what it does, as Settings and Navigate beside them already did. #196
  • Fixed the Scope picker on the Diff toolbar labelling its first entry All files, the same name as the file display button a few buttons to its left, which does something unrelated. The entry that removes the Scope filter is now Clear scope. #194
  • Fixed the bucket row you chose on the Insights Scope card looking the same as the rows beside it. The row filtering the Diff is now tinted and set in a heavier weight, and no longer matches a row under the pointer. #198
  • Fixed the Pull requests label menu hiding its "This filter is full" line below the list once you had chosen five labels, so the greyed rows had no visible reason unless you scrolled to the bottom. The line now sits above the list and stays in view however far you scroll. #192
  • Fixed the Pull requests label menu's greyed rows keeping their full-colour dot and name once you had chosen five labels, so only the checkbox showed they could not be chosen. The dot and name now dim with the checkbox. #195
  • Fixed the Diff's keyboard navigation keys doing nothing, with no message, while the file display is set to Selected. Pressing , . [ ] { or } there now says "Keyboard navigation works in All files." #191
  • Fixed Tab stepping through every row of the column of pull requests you have opened before reaching the screen beside it, up to 20 presses on every screen. The column is now one Tab stop, landing on the pull request you are reading or else the top row, and the Up and Down arrow keys move between its rows. #190
  • Fixed the Walkthrough telling you to refresh GitHub state when inline discussion was missing because the Walkthrough was generated for an older revision, where refreshing changes nothing. It now says to regenerate the Walkthrough in that case, and keeps the refresh message for a Review that is still loading. #201
  • Fixed the Analysis Verification card dropping your ticks without warning when you switched to another Insight tab. The count line now says ticks are not saved and reset when you leave Analysis. #199

v0.0.8

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 12 Sep 07:28
  • Added a column of the pull requests you have opened, beside the app frame and present on every screen. It lists the active workspace's visited pull requests, most recently opened first, with the one you are reading marked, and clicking a row resumes that pull request where you left it and moves it back to the top. Rows are grouped under Today, Yesterday, This week, and Earlier by when you opened them, each row saying how long ago that was, and one that has merged or closed says so with the date Patchdesk last saw that state. Every row is read from what Patchdesk already stored, so the column costs no GitHub call and works with the network off. A pull request appears once you have opened it — the Pull requests table is still where you find new work — and one you opened before this release shows its number and no age until the next time you open it, which fills in its title and how long ago you opened it. The column collapses from a button in the header and stays collapsed until you open it again. #119
  • Fixed moving between two pull requests showing the first one's diff until the second finished loading, and indefinitely if that load failed. #131
  • Fixed adding or removing a repository in Settings during a workspace switch landing the change in the workspace you were leaving. A repository toggle went to whichever workspace Patchdesk had most recently selected, while the Repositories card was still showing the previous one's repositories; each change now names the workspace it belongs to. #136
  • Fixed a pull request whose review Patchdesk swept fourteen days after it merged or closed leaving behind a record that could never be opened again, failing with a generic storage error. The sweep now removes that record along with the session it belongs to. #135
  • Fixed Patchdesk greeting a launch with “Could not open review — the requested service is currently unavailable” when the pull request you last had open was no longer stored. Nothing was unavailable: the record had simply gone, which is ordinary once the fourteen-day sweep has taken a pull request you finished with. A launch that finds nothing to restore now opens the Pull requests table without comment, and a record that really has gone is described as missing rather than as an outage. #122
  • Fixed the Pull requests filters silently building a search GitHub refuses. Choosing enough labels, or a long enough author and base branch, could push the query past the 256 characters GitHub's search accepts, and the refusal came back as a generic failure to refresh that named nothing you could act on. A filter that would not fit is now refused where you choose it: a label that no longer fits is greyed in the menu with a line saying the filter is full, and an over-long author or base branch is marked on its own field. This is also the first time the five-label limit is visible in the menu rather than only enforced after the fact. #61
  • Fixed scrollbars never appearing in Settings, the Pull requests inbox, the review details panel, and the walkthrough reader. Patchdesk hides the system scrollbar inside these panels and draws its own, but the styling never reached the bar it drew, so it sat at a hairline with no thumb: a panel taller than its frame gave no sign it scrolled or how far through it you were. The column of pull requests you have opened now uses that same scrollbar, in place of the system one it had been styling itself. #126
  • Fixed a merged or closed pull request whose merge record Patchdesk could not clear staying pinned forever. Every launch re-checked that pull request with GitHub and then gave up, the fourteen-day sweep never removed its review session or its worktree, and Check GitHub again on it failed on every press. Clearing the record now succeeds on the next attempt after a first one failed. #178
  • Fixed a pull request whose write had just been confirmed briefly showing the pre-write state again when a background refresh landed in the same moment, until the next check found the write on GitHub. #179
  • Fixed clicking a file in the Review navigator making the tree highlight and the diff header jump to the file, snap back to the one you were leaving, then settle on the clicked file a moment later. The diff pane rendered the outgoing file once more before the click reached it, and a poll of which file was on screen reported that outgoing file over the one you had just chosen. The highlight and header now move once, with the pane.

v0.0.7

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 10 Sep 06:31
  • Fixed a Review that could never be opened again after a background refresh lost a race with another write. Patchdesk left behind a record of the interrupted update that it could no longer replay, and refused to open the Review while that record existed, so the failure survived restarts. The unusable record is now discarded, an already-stuck Review recovers on the next open, and the two writes that could silently overwrite each other now report the clash instead. #121
  • Fixed the Diff giving no sign that a pull request no longer merges. A pull request that conflicts with its base branch now opens the Diff with a Merge conflicts notice saying the conflicts, not the checks, are what block the merge, naming the head and base branch and telling you to resolve them in your own local checkout; the diff below it is unchanged. #114 #116

v0.0.6

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 08 Sep 06:48
  • Fixed the Scope picker in the Diff toolbar replacing the whole workbench with "Patchdesk could not load the Review workbench." Choosing a bucket handed the renderer one file's syntax highlighting paired with another file's lines, because a narrowed diff reused what the full diff had cached by position. Clearing back to All files could fail a second way, hydrating one file's source under another file's name. Applying, switching, and clearing a bucket are all safe now, and a file the current filter hides is no longer fetched at all.
  • Fixed a Markdown preview you could not read to the end of. A previewed file counted as a single header row in the diff's scrolling, whatever its real length, so a long document ran past the bottom and any file after it became unreachable. A preview is now the pane's own scrolling region at its true height. The Diff/Preview switch has moved from each file's header row to the diff toolbar, where it acts on the file you are reading; each file still remembers its own choice, and a file you have marked viewed can now be previewed too.
  • Fixed clicking Browse, Threads, or Commits in the Review navigator dropping the file you had selected, which left the diff pane showing a file the Scope filter was hiding. Choosing a section is a way into the diff, not a change of file.
  • Fixed badge images in a comment showing as [Image: alt] text. A bot that posts a quality-gate summary, or any comment carrying an image hosted outside GitHub, now renders those images the way GitHub does. Patchdesk reads the substitutions GitHub already publishes and fetches the copy GitHub proxies, so opening a review never contacts the site the image came from. #107
  • Reworked the light theme. Surfaces now carry a slight warm cast rather than reading as clinical grey, and every status and scope colour is chosen per theme instead of one value serving both: in light mode the amber and green that mark a warning or a passing check used to sit near 2:1 against the page and were effectively invisible, and now clear the contrast floor. The Insights Scope gauge moves Docs from blue to teal, so it no longer reads as the same bucket as Core at legend size.
  • The Review navigator's file tree now takes the app's own colours instead of the tree library's, so it sits flush with the panel behind it rather than showing as a grey slab with white margins, and a selected file uses the same highlight as the rest of the app. Filenames read as normal text: the git status colour now marks only the status letter beside each file, instead of tinting every name, which in a pull request where almost every file is modified had turned the whole tree one colour.
  • Dialogs, alerts, and sheets now dim the page behind them in dark mode. The scrim was a single value tuned for light mode, so in dark mode the page stayed at almost full brightness behind an open dialog.
  • Fixed the zoom and close controls on a full-size image being invisible in light mode, where white buttons sat on a near-white backdrop.
  • Fixed a flash of the other theme when the window reloads its interface. Patchdesk kept re-applying the appearance it started with, so after you changed Appearance any reload of the interface — recovering from a renderer error, for instance — repainted the theme you had left for a frame before the saved one came back.
  • Patchdesk no longer flashes the wrong theme while it starts. The window opened dark whatever your Appearance was, inside a light native frame, so either choice showed a flash of the other; the stored appearance is now resolved before the first frame is painted.

v0.0.5

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 06 Sep 05:31
  • Choosing a bucket on the Insights Scope card filters the Diff to that bucket's files: the file tree and the diff pane both narrow to Core, Tests, Generated, Docs, or Config. The same choice is now a Scope picker in the diff toolbar, listing every bucket that has files with its count, so you can narrow or widen the diff without leaving it; All files restores the whole diff. Selecting a commit clears the filter, so a bucket and a commit slice are never shown at once. Commits and Threads stay complete. #68 #104 #106
  • Analysis gains a Copy as markdown prompt button that copies the open findings as a prompt you can paste into a local coding agent to fix them.
  • The Review opened and Could not open review notices on Pull requests are now one centered card with a status icon and a Dismiss button, instead of a full-width strip that read as the page header; the success notice clears itself after six seconds, so coming back from a Review no longer shows a stale confirmation. #105
  • Widened the Pull requests repository picker so typical owner/repository names remain readable and longer names reveal their complete value on hover. #101
  • Standardized empty Brief, Walkthrough, and Analysis readers on one borderless, centered layout with sentence-case actions. #100
  • Added the commit count beside Commits in the Review navigator. #99
  • Moved pull-request link opening into the global Navigate palette, available from Pull requests and Review workbench, with support for URL path, query, and fragment suffixes; Pull requests no longer intercepts document paste. #84
  • Added an independent Diff/Preview switch for each eligible Markdown file, rendering complete verified head content while keeping unavailable, deleted, binary, omitted, mismatched, and oversized files as normal diffs. #98

v0.0.4

Choose a tag to compare

@kwanpham2195 kwanpham2195 released this 04 Sep 14:52
  • Insights now reads in the order you review a pull request: Brief, then Walkthrough, then Analysis, and it opens on Brief rather than Analysis, so you meet the shape of the change before the judgment of it; an Insight you were last reading still opens where you left it.
  • The window now reads as three layers: a darker shell behind everything, the working area on a rounded, bordered panel, and the side columns (Review details on Pull requests, the metadata column on Conversation) one step lighter than the panel, so where you are working stands out from the frame around it.
  • Reworked the Insights tab: the Overview / Brief / Walkthrough / Analysis rail is now a line of tabs, each carrying a coloured status pill (Current green, Outdated amber, Running with a spinner, Failed red, Not generated outlined); the Overview cards show the Insight's icon, that pill, and when the result was retained, and lift as you hover; and a Brief, Walkthrough, or Analysis you have not generated yet shows one centred card with the icon, one line on what that Insight gives you, and the generate button, in place of the repeated "Brief" heading and "No retained result" line.
  • The Conversation / Diff / Insights strip and the Insights rail now use one tab control, so arrow keys move between tabs and Enter selects on both, and focus looks the same on each.
  • Each Insight type now has one icon, the same on the Overview cards, the empty state, and the PR overview sheet.
  • Animations now follow the system reduced-motion setting: when your OS asks for less motion, hover lifts, tab changes, and dialog transitions happen at once instead of easing.