Skip to content

Diffwright 0.11.0

Choose a tag to compare

@Jpi-net Jpi-net released this 02 Oct 13:58
· 1 commit to main since this release

What's new

  • Built-in updates: Diffwright checks on its own, at startup and then every 6 hours, whether a new
    version is available and flags it in the activity bar. Updates are signed and are only downloaded and
    installed after you click; you can also run the check by hand or turn off the startup check in
    Settings › Updates.
  • Usage profiles: tell Diffwright your role — Reviewer, Tester, Author or Team lead — and it only
    shows what is useful to you. A tester sees neither the Code space nor the Team space, and a Pull
    Request opens directly on the Test tab ("Show code" stays one click away, and a banner takes you back
    to your profile's view). The role is chosen in the setup assistant or in Settings › Usage profile,
    where each space and each tab can also be adjusted one by one. Nothing is removed: everything comes
    back when you switch profile.
  • A Test tab to test a Pull Request end to end: a dedicated tab of the Review panel (⌘6) brings the
    test session together — preview environment or local address, window state, live page errors, and
    feedback already filed in your review. The page opens in an isolated window with no access to
    Diffwright, topped by a toolbar: navigation, address, page errors, and capture (⌘⇧S) without leaving
    the test window.
  • Run the PR's project on your machine (macOS and Windows): a launch profile describes how to start
    the application. "Run" fetches the PR's code, first shows every exact command with the required tools,
    the variables to provide (secrets stay on your machine) and any warnings, then follows the run live —
    status, steps with their duration, log, stop — and opens the test window as soon as the application
    responds. Nothing runs without your approval, and a trusted profile can be relaunched in one click as
    long as its commands don't change.
  • A real launch workflow, with a visual editor: each profile chains its steps — command, background
    process, waiting for an address, a log message or a delay, opening the test window — and a "On stop"
    list. "Configure" opens a visual builder (or the raw text); existing files are still read and trust
    already granted is kept. A launch script that returns control (for example by running in the
    background) is no longer mistaken for a failure.
  • AI prepares the launch for you: "Suggest with AI" reads the repository (docker compose,
    Dockerfile, README, launch scripts…) and suggests a profile, which you review before saving it
    through a commit. It reuses the repository's scripts instead of rewriting their steps, and "Analyze
    the failure" points to the likely cause of a failed launch (port in use, image not found, missing
    variable…) without running or changing anything.
  • Local files and ports checked before launch: git-ignored files the project needs (an environment
    file, for example) are detected, then copied into the test folder on every launch without ever being
    sent anywhere. Ports that are already in use are reported along with what is using them — a container
    to stop in one click, a process, or another PR's stack — instead of letting the launch fail along the
    way.
  • Test folders under control: a single folder per PR, automatic cleanup of unused folders (14 days
    by default) and a total space cap (10 GB by default). Settings › Tests lists each folder (size, last
    use) so you can show or delete it, and also gathers local files and test accounts.
  • Test feedback with an annotated screenshot: capture an area of the screen (Diffwright steps aside
    during the selection), paste an image or pick a file, annotate it — rectangle, arrow, pencil,
    ellipse, highlighter, numbered markers, text, blurring of sensitive data, 9 colors readable
    everywhere — then publish it as a Pull Request comment, along with the iteration and commit tested.
    On Windows, press Win+Shift+S then paste the capture.
  • Enrich a test feedback: attach the page's errors (console, exceptions, failed requests) or the
    latest errors from the local stack's log, unchecked by default and reviewable before sending; record
    the page under test (30 s at most, macOS) to attach a video, published as a link.
  • Test feedback in "Finish my review": "Add to my review" sets a feedback aside instead of
    publishing it; the whole session is reviewed and then sent at once, like code comments. Screenshots
    stay on your machine until publication.
  • Follow up on your test feedback: the Test tab lists published feedback with its status — pending,
    author replied, resolved, new push since your feedback. "Re-test" brings the test window back, then
    "Confirmed fixed" or "Still present" posts your answer in the thread. Nothing is sent without your
    click.
  • Test verdict: "Finish the test" gives your verdict — Approved, Approved with reservations or
    Rejected — with a comment and an automatic summary (version tested, feedback published, page errors)
    that you review before publishing, and a suggested vote that you can change or remove. "Save without
    publishing" keeps it on your machine.
  • "To test" on Home: a tile lists the Pull Requests you review that haven't been tested since their
    last push, and a badge — Approved / Reservations / Rejected / To re-test — accompanies them in the
    lists (tile shown for the Tester profile, or as soon as you've run your first test).
  • A test stack is never forgotten: as long as a project launched on your machine is running, a
    "Stack · #PR" badge stays in the title bar (amber if it serves a PR other than the one open) to
    reopen the PR or stop the stack, and leaving a PR whose stack is running offers "Stop" or "Keep
    running". If the PR receives a new push, the Test tab and the test window bar say so and offer
    "Relaunch on iteration N"; a stack from another PR that holds the port can be stopped in one click
    when launching this one.
  • Test window tools ("⋯" button): page screen size (Desktop, Small screen, Tablet, Mobile or Fit),
    session reset, and test accounts saved per repository, copyable in one click (the password leaves the
    clipboard a minute later).
  • Test tools on Windows: the test window can be captured and picks up page errors, and launch
    profiles also run on Windows, without a console window.

Improvements

  • A more consistent app from one screen to the next: the Code, Repositories, Team and Pull requests
    spaces share the same header (title and context on the left, data freshness and actions on the right,
    filters below), and the detail panels — Review, branch, repository, contributor — share the same
    layout and the same tabs.
  • A Pull Request looks the same everywhere: same information in the same place on Home cards, the
    sidebar, the inbox, ⌘⇧P search, the bell and popovers, and the same gestures: click to open it,
    ⌘-click for a new window, ⋯ button or right-click for its actions.
  • Action menus everywhere: ⋯ button and right-click on Pull Requests, repositories, files, threads
    and branches, with the same actions as the ⌘K palette (copy the link, open in Azure DevOps, open in
    the Code space, blame, resolve a thread…).
  • AI looks the same everywhere: same button, same indicator while it works, same "Suggested by AI"
    frame and same reminder that nothing is published without your click — from the AI review to chat,
    reply drafts, descriptions, commit, test launch and team summary.
  • Uniform wording and states: the same words for the same actions ("Refresh", "Publish", "Save",
    "Remove"…), one loading indicator, an error that offers "Retry" when possible, and "Refreshed … ago" /
    "Live" wherever data updates.
  • Calm, consistent animations: switching tabs, screens or Pull Requests is instant — only the
    selection pill slides. Motion is reserved for what really happens (a list loading, a folder
    expanding, a box being checked, a counter changing), always subtle and quick, and nothing replays when
    you return to a screen or during refreshes. The line marker after navigating in the diff finally
    shows up. "Reduced motion" turns everything off.
  • Loading that no longer flickers: each screen holds its place while loading, with skeletons of the
    same shape everywhere (PR files, branches, history, repositories, comments, review feed, test). An
    indicator doesn't appear for a quick read and doesn't vanish right after showing, no list appears
    "empty" before it has loaded, and a refresh keeps the content. The branch list arrives complete and
    sorted, and Pull Requests you've already opened (30 per session) reopen instantly.
  • No more hover tooltips: the bubbles that appeared on buttons and the activity bar are gone.
  • Settings reorganized and searchable: "Search settings" (⌘F) finds a setting by name and jumps to
    it. Sections are grouped (You, Display, Work, Tracking, System); "General" only keeps startup and
    keyboard, refresh rates have their own "Synchronization" section, and caches, history, export and
    reset are under "Local data". Pull requests settings are arranged by moment, and the tab opened by
    default is now set in one place only, in Usage profile.
  • Tester view uses the full width: without code, the Review panel takes the whole main column. The
    Test tab switches to two columns — the application and its run on the left, the verdict and feedback
    on the right —, Summary cards spread across columns, and threads keep a comfortable reading width.
  • A more guided tester journey: the Test tab walks you through the first setup ("Set up launch",
    AI suggestion first), offers to resume after a setting change, shows test feedback with clickable
    thumbnails in "Finish my review", confirms publication and suggests a commit message for the launch
    file and the checklist.
  • Faster relaunch: relaunching a Pull Request on the same commit reuses its test folder instead of
    downloading the code again; only your local files are copied back.
  • Narrow Review panel handled better: the Threads tab header shrinks cleanly (AI sort button as an
    icon, counter reduced to the number) and the "Write a comment…" prompt ends with "…" instead of being
    cut into two clipped lines.
  • The test window keeps its cookies to itself: the page under test has its own storage, separate
    from Diffwright; closing the test window therefore logs you out of the tested application.

Fixes

  • "Trust this profile" is finally respected: the confirmation dialog came back on every launch of a
    profile modified by the PR, even after trust was granted. It no longer comes back as long as the
    commands don't change (or a port is in use), and the "Commands" button still lets you review them.
  • Opening the test window on an address that doesn't respond crashed the application: the address is
    now checked before opening ("Open anyway" is still possible), and the bar flags a page that isn't
    responding.
  • The application crashed while preparing a launch when a project file had an accented name.
  • Stopping then relaunching right away could leave the run showing "Stopping" forever, or mix up the
    files of the two launches.
  • "Delete all" test folders was no longer possible as soon as a run was in progress; folders in use
    are now simply kept.
  • Saving the launch file or the checklist failed with an "Invalid path" error when committing.
  • The AI's suggestion could be rejected ("unknown field") when a description contained a comma; the
    AI now writes these entries safely, and the error message explains how to fix it by hand.
  • The Test tab didn't show the profiles of a launch file that had just been saved until you switched
    PR.
  • Some dialogs in the Test tab didn't respond to clicks near the edge of the panel.
  • The "Mark reviewed and next" button stayed visible on top of dialogs.
  • Only one test window at a time: opening one for another PR closes the previous one, and the "Test
    window" card disappears when the stack is running and its window is open.