Features10
-
View a commit in the app: in the Code space, clicking a commit card in the History tab opens it with its changed files and diff, also accessible from Blame and from PR revisions (Info tab).
-
Redesigned Team space: new interface with PageHeader grid + toolbar (period, repositories, Auto), dynamic title "N signals to check", tabs Overview / Rhythm / Pull Requests / Review (remembered per project), Colleagues column (avatars, sparklines, compact goals) that collapses to a strip below 1,180 px, TeamKpiBand figures, highlighted signals with "Dismiss"/"Show again" groups (session state per account+project, never on disk, reset by Refresh only), Colleagues signals visible only when someone is being followed, 24 h heatmap, throughput in two charts, first review, open PRs with flags, CI, discussions, "Who reviews whom" matrix, colleague profile, ⌘K to go to a colleague, stacked Escape, smooth keyboard navigation. Vocabulary: "Review" instead of "Relecture", "Dismiss" instead of "Seen", "Refresh" instead of "Analyze". High 60 vh ceiling for signals with inner scrolling.
-
Blame redesigned: dedicated column in the Monaco gutter with three modes Comfort 168 px / Compact 52 px / Strip 6 px, avatar alone with name on hover in a card (name, email, date, copyable SHA, message, forge and commit links), click to pin the card, highlight all lines from the same commit, age bar in 6 slices, "Local changes" in edit mode, ⌥↑/↓ shortcuts (⌘⇧ on macOS, Alt on Windows), "Commit details" palette, and full accessibility (aria-label, tabindex, keyboard navigation).
-
Avatars: Rust-side service: disk cache
~/.diffwright/avatars/(7 days freshness, 50 MB / 2,000 entries, LRU eviction), PNG/JPEG/GIF/WebP only (SVG and HTML rejected, 512 KB), images served by forge host only (no Gravatar, no external GitHub), token to forge host only. Frontend side: 30 ms batches, object URLs with subscriber counting, connection+URL keys, failure expiration 60 s. Per-forge identities: GitHubavatarUrl/login, GitLab/avatar?email=then/users?search, ADO resolution by email then name (Identity Picker). Avatars also on Home (inbox and "Get started" card). -
Code space redesigned: the Branches and Files columns now adopt the Pull Request visual language (compact headers with collapse, selection rail, keyboard-navigable tree), and the branch inspector displays as a review panel with tabs and footer actions. The Branches column now displays a tree that folds by directory (inferred from branch names like features/, bugfixes/, release/…), with a count per folder, default branch at the top, fold state remembered for the session, and fully expanded up to 30 branches otherwise just the selected folder; the filter trims and expands; ↑↓←→ Enter navigation. Fixes: "Last commit" card with stable height, ←/→ navigation of the Tree/Search toggle without focus theft (⌘⇧F keeps autofocus), branch animations not replayed on filter, branch creator kept in avatar tooltip and card note.
-
The small comment composer closes on an outside click: if nothing is written in it, clicking outside the line composer closes it (File and Stream views); as soon as it holds text or a suggestion it stays open and the draft is never lost.
-
More AI engines: API key and Codex CLI: besides Claude CLI and Ollama, Diffwright can now use a paid API (Anthropic, OpenAI and OpenAI-compatible services such as Azure OpenAI, OpenRouter, Groq, Mistral, Gemini, or a custom service), LM Studio or Codex CLI, your choice in Settings › AI. A key-based engine asks for your consent before sending code (“Send code to…?”) and keeps its API key on this computer (~/.diffwright), like the Azure DevOps token. Auto-review stays off for these paid engines, and absent or disabled AI stays hidden, never grayed out.
-
GitHub and GitLab accounts in beta: connect a GitHub account (github.com or Enterprise Server) or a GitLab account (gitlab.com or self-hosted) to review pull requests and merge requests with the same review tools; every write still needs a click from you.
-
Redesigned Home and unified search: Home now displays a hero with a refined mark, a counter title "N actions await you", three tabs "My queue / All project / Archive" with a sliding badge, signal chips with counters and filters, and a "Get started" card highlighted (tilt and halo), opened with ⌘↵; a sticky sidebar shows your PRs with reviewer segments, "Resume", and team stats over 14 days. The title bar groups your account, connection, branch, and freshness. The Activity Island (iOS-style pill, top right) replaces the isolated search bar and old-style command palette: ⌘K and ⌘⇧P open the same unified search with actions, PRs, repositories (local data), network search by repository (6 parallel reads, 30 PRs per repository, 200 ms delay, 2-min cache), text queries and session filters, compact rings for AI review and test stack visibility at rest. Missing pieces: real webview verification on macOS/Windows, "View" of an AI review doesn't open the tab, "Get started" card lacks file/thread/CI preview, "New" badges and counters not wired (zero data), link to Team tab not connected.
-
Diffwright news on Home: a card shows the latest blog post, refreshed at most every 12 hours; you can hide it in Settings › General.
Improvements16
-
Unified AI visual identity: an Apple-style multicolor gradient replaces the aqua design on all AI elements — mark, buttons, cards, and animated halos and rings — bringing visual harmony to AI surfaces. Animations only play during real AI tasks, never at rest.
-
AI summary and readiness checklist saved locally: the diff summary and readiness checklist are now stored on your machine, so they persist when switching Pull Requests or restarting the app.
-
Add account from the keyboard: ⌘K now displays “Add account” in the command palette, making it easier to register a new token without going to Settings.
-
Better account management: Settings › Accounts now shows your server, platform, version, and last 4 digits of your token for each account, with an action menu (Use, Refresh token, Open tokens page, Copy server address, Remove) instead of scattered button rows. Accounts with the same login are distinguished by their server.
-
Better error diagnostics: a rejected token now clearly says it was refused and focuses the token field. Certificate errors show a step-by-step guide for checking your certificate in macOS Keychain or Windows Certificate Store. Rate limit errors are reported separately from unreachable servers.
-
Settings › AI and Settings › Accounts refactored: AI engine settings now show a single grouped card with three subsections (On this machine / Installed CLIs / API keys), the selected engine's configuration displays instantly below its row without a dialog, a badge shows engine status (Detected / Reachable / Key saved / To configure), the ↑/↓ arrows no longer trigger a forced check or any dialog, consent goes only through the « Authorize… » button, and the model list refreshes only on « Refresh list »; Settings › Accounts groups accounts in a list (single card with 52 px per account), shows "Active account" on the one in use, no actions when all is well (status/badge only on issues), actions via ⋯ menu (Use / Replace token / Copy / Remove), account adding redone in a card (no greyed button), « Switch to {account} » in the ⋯ menu, Esc closes the form first.
-
Redesigned Pull Request list: the side list in the Pull Requests panel now has a header grouping the title, total, and a button to toggle favorite repositories. Quick search with
/and forge filters (#/!) help you isolate PRs. Three filters "All / To review / Mine" with counters highlight your pending actions. Repository headers stay visible while scrolling; each row shows avatar, identifier, author and age, plus unresolved threads. The empty state offers quick reset. Default width increased to 272 px and adapts to your saved preference. -
Redesigned Files column of a PR: the Files column adopts the language of the Pull Request list — header "Files · N/M reviewed" with multi-select, review order, "Collapse/expand all" and column collapse; iteration picker with search (number, push message, age, "latest") and Cumulative / Delta / Since my review modes;
/search and "unreviewed" filter side by side. Folders stay visible while scrolling (up to three levels stacked, without overlapping files), show their "reviewed/total" progress with progress dots and open with a toggle line icon; checking a file as reviewed makes it appear with a small animation; each file shows its unresolved threads, pending AI suggestions (if AI is active), a shield for sensitive files, strikethrough name if deleted, a small green and red bar showing the share of added and deleted lines (computed while scrolling on Azure DevOps, provided directly by GitHub and GitLab — not verified on a real server), a ⋯ on hover and navigates with arrow keys. A footer reminds you of the PR volume, offers "Next to review" (without marking anything) and the j/k keys; long folder names truncate in the middle to keep the last folder readable. Add/remove bar: a skeleton of the same shape (shared shimmer) holds its place while computing, for lines near the screen only and after 180 ms, then the bar fades in; the "reviewed files" filter becomes an eye (crossed when reviewed files are hidden) whose tooltip says the action and count. -
Redesigned review panel: the right panel now groups seven tabs (Review, Info, Threads, AI, Chat, Impact, Test) accessible via ⌘1–⌘7, with a simplified identity header, a tab bar with sliding badge, and a fixed "Finish my review" footer showing your progress; you can collapse the panel into a compact strip. The "My vote" card is condensed to a single row of four options (icons only with the chosen option expanded in a narrow panel, 2×2 grid if the panel is very narrow): a slider glides under your verdict and changes color, and the current state shows next to the title with "Remove". Colored text keeps contrast in light theme and keyboard focus stays on your vote after a click.
-
Dark and light themes with their own background: each theme has its built-in background and its own background settings, and panels are 85% opaque so the background stays readable without getting in the way of the text.
-
Settings reorganized: Appearance and Background are now one section, with a sample preview; appearance is applied when you close Settings. Text and fonts are chosen from menus (code font: CommitMono, System or Custom; app font: System or Custom). The language is left-aligned, the settings search has no inner border, and "Comment templates" has its own section.
-
AI engines without brand logos: AI engines show neutral pictograms instead of provider logos; the brands mentioned are listed in Licenses and legal notices.
-
Images in comments and feedback: a published image appears as a thumbnail of at most 320 px, and a click enlarges it in a viewer.
-
Code space: repository path: the header shows "repository › branch", so you always know where you are.
-
Calmer Home: the hero halo drifts only once at launch, and the team chart is easier to read.
-
Faster space opening: every space shows a loading skeleton and spaces are preloaded; the first opening goes from about 300 ms to 35–100 ms.
Fixes7
-
Stream view identical to the File view: code in the Stream view now matches the File view line for line — same tab width (no more oversized indentation), same line numbers and gutter, same bracket colors and indent guides, and the characters that actually changed highlighted within each changed line; a line that's too long wraps at spaces and stays aligned with its indentation. Each file in the stream now has the same header as the File view (logo, path, Blame, previous/next block, block list, "Explain this file", "Mark reviewed", ⋯ menu), which tucks secondary actions into the menu when space runs short, and that header now sticks exactly to the top of the stream instead of floating a few pixels lower with code showing above it.
-
Stream view without horizontal scrolling, comments and selection like the File view: a very long path no longer overflows and "Mark reviewed" always stays visible — the path is shortened in the middle (the file name stays whole) and the header of the file you're reading sticks to the top, with the Files column following along as you scroll; you comment a line or a range (drag on the "+") with the same composer as the File view (Suggest, draft, Add to my review), and selecting code shows the same "Comment / Suggest / Ask AI" pill, whose AI icon is now the common AI mark. The composer now opens over the code like in the File view instead of splitting the block in two, the "+" is the same (between the line numbers, on the hovered line), and clicking a thread bubble opens its conversation in place instead of switching to the File view.
-
Rejected Azure DevOps token, not unreachable server: the setup wizard was reporting a rejected token as a server error with the wrong field focused; it now clearly indicates a rejected token and focuses the token field.
-
Useful error reports: if you share error reports, an interface error now shows the file and position where it happened instead of a fully masked location, and the code editor's normal cancellations are no longer reported as crashes. Nothing personal is added: addresses, tokens, paths and names are still removed.
-
Overflowing text fixed: long text in comments, pull request descriptions and the build details window now stays inside its frame.
-
Repositories space: stable panels: panels no longer move on their own while you browse.
-
Ollama on Windows behind a proxy: the Ollama model list and reviews reach your own machine again when a corporate proxy is configured, instead of going through that proxy.
Download this version
- macOS Apple Silicon (M1 and later)Download for macOS (Apple Silicon)
- macOS Intel MacDownload for macOS (Intel)
- Windows Windows, 64-bitDownload for Windows