Skip to content

Releases: hojttaler/Resolvr

Resolvr v0.3.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 14:02

Resolvr 0.3.0

Flows grow up: one scenario runs on anyone's data, a whole set runs in one command, and a workspace can refuse writes.

Variables and constants

A step used to need a first request just to find the id of your own client, so the same scenario could not be reused by another person or run against a list of clients.

A flow now carries Constants — the starting context, available to steps as {{name}} — and a run may pass its own values on top:

flow_run(workspaceId, flowId, variables: { clientId: "…" })

Run values win over constants. Constants are expanded once per run, so {{$uuid}} in a constant is one identifier for the whole flow.

Value generators

Templates — step variables, headers, constants — understand generators: {{$uuid}}, {{$timestamp}}, {{$unix}}, {{$isoDate}}, {{$date}}, {{$randomInt}} ({{$randomInt:1:100}}), {{$randomString}} ({{$randomString:12}}) and {{$randomEmail}}. Without them a second run of a flow with idempotency keys, emails or other unique fields failed on the values left behind by the first.

Protection against accidental writes

A workspace named “development” may well point at a production API, and until now only a hook on the agent's side stood in the way. Workspace settings now offer Protection:

  • Confirmation for every mutation — the app asks before a mutation or a flow run; through MCP run, flow_run and flow_run_many refuse the call until the agent passes confirm: true, which it should do only after asking you.
  • Read only — mutations are refused, confirmation or not.

The check lives in the run engine, so it holds for manual work, for flow steps and for agents alike. Reads are never restricted, and the current mode is visible in workspace_list.

A whole set in one command

MCP flow_run_many runs a set of flows selected by id prefix (smoke-billing-), by tag or by an explicit list — sequentially, or in parallel when the scenarios are independent. The answer is a table: outcome, duration and the step a flow stopped at. A failing flow does not cancel the rest, because a regression run is only useful whole.

The registry lives with the flows

A flow carries Tags and Preconditions, so the list of smoke tests no longer lives in a separate document that drifts away from them. The outcome of every run is kept outside the repository, so running a flow never produces a diff: flow_list reports lastGreenAt, and in the sidebar a flow that passed is marked with a ✓ and the date.

Checks and step errors

  • eqNum compares numbers regardless of notation, so "10.000000" equals 10 — money-like fields arrive as strings, and strict eq used to fail on them.
  • len checks the length of an array, a string or the number of object fields.
  • A step result carries the response errors even when the step is green: with Any response the GraphQL errors inside an HTTP 200 body used to stay invisible.

Parallel agents

operation_get and flow_get return a version — a fingerprint of the file contents. Passing it back as expectedVersion to operation_save or flow_save turns a silent overwrite into a refusal when someone has changed the file in the meantime. Without the field, writes behave as before.

Everything else is identical to 0.2.9.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.3.0_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.3.0_amd64.AppImage, Resolvr_0.3.0_amd64.deb, Resolvr-0.3.0-1.x86_64.rpm
Windows Resolvr_0.3.0_x64-setup.exe, Resolvr_0.3.0_x64_en-US.msi

Resolvr v0.2.9

Choose a tag to compare

@github-actions github-actions released this 24 Sep 11:46

Resolvr 0.2.9

A fix for the crash on Linux.

Fixed

Linux: crash with malloc(): unaligned tcache chunk detected. Resolvr could close by itself after a few minutes of work on Linux. Backtraces with symbols (added in 0.2.8) showed every crash at the same spot: the webview answering a call from the interface through the ipc:// URI scheme. On Linux the interface now talks to the app through postMessage instead — the fallback transport built into Tauri, which answers on the main thread. macOS and Windows are unchanged.

If Resolvr still crashes on Linux after updating, please open an issue with the log (Resolvr → Open Logs) and, if you can, a backtrace:

gdb -batch -ex "handle SIGUSR1 nostop noprint pass" -ex run -ex "thread apply all bt 25" --args resolvr > resolvr-crash.txt 2>&1

Everything else is identical to 0.2.8.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.9_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.9_amd64.AppImage, Resolvr_0.2.9_amd64.deb, Resolvr-0.2.9-1.x86_64.rpm
Windows Resolvr_0.2.9_x64-setup.exe, Resolvr_0.2.9_x64_en-US.msi

Resolvr v0.2.8

Choose a tag to compare

@github-actions github-actions released this 24 Sep 10:47

Resolvr 0.2.8

Negative tests in flows, and better crash diagnostics.

Negative tests in flows

A flow step used to pass only when the server answered without errors — so a check like "without a token the API refuses" failed on the very error it expected and stopped the flow.

Each step now has an Expected result:

  • Success — the default, as before: a response without errors, and the checks pass.
  • Error — the server returns an error (HTTP not 2xx or GraphQL errors), and the checks pass. The flow goes on to the next step. If the request unexpectedly succeeds, the step fails.
  • Any response — only the checks decide.

With Error, add a check that pins down which error you expect — for example errors.0.message contains Unauthorized, or errors.0.extensions.code equals FORBIDDEN — otherwise any failure, including a server crash, would count. Agents set the same field through MCP flow_save (expect).

Crash diagnostics

Release builds now keep the symbol table, so a native crash backtrace (gdb, system crash reports) names the function instead of showing ???. This helps track down a rare crash on Linux. The app is about 1.5 MB larger.

Everything else is identical to 0.2.7.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.8_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.8_amd64.AppImage, Resolvr_0.2.8_amd64.deb, Resolvr-0.2.8-1.x86_64.rpm
Windows Resolvr_0.2.8_x64-setup.exe, Resolvr_0.2.8_x64_en-US.msi

Resolvr v0.2.7

Choose a tag to compare

@github-actions github-actions released this 24 Sep 07:11

Resolvr 0.2.7

AI agents can now build flows through MCP.

Flows through MCP

An agent connected to Resolvr's MCP server could list and run flows but not create them. Three new tools close the gap:

  • flow_save creates or overwrites a flow. Each step is a saved operation (operationRef) or an inline query, with variables ({{token}} takes a value extracted by an earlier step or from the environment), extract to pass values on, assert to check the response and continueOnFailure.
  • flow_get returns a flow in full, so an agent can extend it without losing steps.
  • flow_delete removes a flow.

Before a flow is written, Resolvr checks that every referenced operation, environment and endpoint exists and reports all problems at once — a typo in a reference no longer shows up only when the flow runs. Flows created by an agent appear in the app immediately, like operations.

Connect the agent: Settings → About → Agent via MCP, or

claude mcp add resolvr -s user -- node "/Applications/Resolvr.app/Contents/Resources/mcp/index.js"

Everything else is identical to 0.2.6.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.7_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.7_amd64.AppImage, Resolvr_0.2.7_amd64.deb, Resolvr-0.2.7-1.x86_64.rpm
Windows Resolvr_0.2.7_x64-setup.exe, Resolvr_0.2.7_x64_en-US.msi

Resolvr v0.2.6

Choose a tag to compare

@github-actions github-actions released this 24 Sep 06:42

Resolvr 0.2.6

The MCP server bundled with the app now starts on Node.js 20.

Fixed

MCP server: "Cannot use import statement outside a module". The server inside the app is an ES module, but the app did not mark it as one, so Node.js 20 refused to load it and Claude Code reported the server as failed to connect. Node.js 22 guessed the format by itself, which is why not everyone saw it. The app now ships the server as an ES module package; the command stays the same:

claude mcp add resolvr -s user -- node "/Applications/Resolvr.app/Contents/Resources/mcp/index.js"

Settings → About → Agent via MCP copies the command with the right path for your system.

Everything else is identical to 0.2.5.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.6_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.6_amd64.AppImage, Resolvr_0.2.6_amd64.deb, Resolvr-0.2.6-1.x86_64.rpm
Windows Resolvr_0.2.6_x64-setup.exe, Resolvr_0.2.6_x64_en-US.msi

Resolvr v0.2.5

Choose a tag to compare

@github-actions github-actions released this 23 Sep 12:12

Resolvr 0.2.5

A stability fix for Linux.

Fixed

Crash on Linux with malloc(): unaligned tcache chunk detected. The native menu was rebuilt every time the app started and every time a setting changed — theme, font size, opacity. Replacing a GTK menu tears down its keyboard shortcuts and could corrupt memory, which ended in a crash some time later. The menu is now built once, in the language from your settings, and rebuilt only when you switch the interface language.

Everything else is identical to 0.2.4.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.5_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.5_amd64.AppImage, Resolvr_0.2.5_amd64.deb, Resolvr-0.2.5-1.x86_64.rpm
Windows Resolvr_0.2.5_x64-setup.exe, Resolvr_0.2.5_x64_en-US.msi

Resolvr v0.2.4

Choose a tag to compare

@github-actions github-actions released this 23 Sep 10:26

Resolvr 0.2.4

Fixes for Linux: copying works, and the interface no longer crashes on the NVIDIA driver.

Fixed

Copying on Linux. Every copy action — the response Copy button, "Copy value", links, curl — did nothing: WebKitGTK does not let the page write to the clipboard. Copying now goes through the app itself on every platform.

Crashes and a blank window with the NVIDIA driver. With the proprietary NVIDIA driver the WebKitGTK DMA-BUF renderer could crash the interface or leave the window empty, without a trace in any log. Resolvr now turns this renderer off when it detects the NVIDIA driver. If you set WEBKIT_DISABLE_DMABUF_RENDERER yourself, your value is kept.

Recovery instead of an empty window. If the WebKit page process still dies on Linux, the reason — crashed or exceeded the memory limit — is written to the log (Resolvr → Open Logs) and the interface reloads with your tabs and drafts.

Everything else is identical to 0.2.3.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.4_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.4_amd64.AppImage, Resolvr_0.2.4_amd64.deb, Resolvr-0.2.4-1.x86_64.rpm
Windows Resolvr_0.2.4_x64-setup.exe, Resolvr_0.2.4_x64_en-US.msi

Resolvr v0.2.3

Choose a tag to compare

@github-actions github-actions released this 23 Sep 09:23

Resolvr 0.2.3

One environment for every tab, response values that land in variables by themselves, flows that survive renames — plus a log file to report crashes with, and fixes for the Linux menu.

One environment per workspace

The environment and endpoint in the title bar used to belong to the tab, so two tabs could quietly send requests to different environments. The choice is now shared by all tabs of a workspace. After the update the environment of your active tab becomes the workspace choice. Opening a saved operation or a history entry no longer switches it.

Response values in the environment

Right-click any value in the response — a string, a number, an object — and Save to environment variable…. Tick Save after every run to turn it into a rule of the operation, or manage the rules on the To environment tab of a saved operation. The rule is "after a successful run, store data.login.token in {{token}}". Rules run only on successful responses, can store the value as a secret, and apply to runs through MCP as well. A note above the response lists what was saved.

Environment variables in requests

Type {{ in the variables editor to pick a variable of the active environment or of the operation's prerequisite flow. Secret values stay masked. Names the environment does not define are underlined, and unknown names in headers are listed under the header editor.

Collections

Operations are reordered by drag and drop, within a collection or into a specific position of another one. Renaming or moving an operation now updates the flows and login profiles that use it, and the operation keeps its place in the list.

Response pane

  • Copy copies the whole Response, Raw, Headers or Trace tab — the full text, not only the visible rows.
  • ⌘A / Ctrl+A selects the tab content; in the JSON tree ⌘C then copies the full response.
  • Huge responses: the Raw tab shows the first megabyte with Show all, bodies over 5 MB are not re-formatted, and search no longer blocks typing.

Editor search

⌘F opens a redesigned find/replace panel with a match counter, case / regexp / whole-word toggles and a replace row behind the chevron. Enter and Shift+Enter move between matches, Esc closes.

Unsaved changes

Closing a tab with unsaved changes asks Save / Don't save / Cancel. A new draft opens the save dialog and closes once saved.

Logs

The app now writes a log file. It records crashes, unhandled interface errors and HTTP, Keychain and file-watcher failures. Tokens, header values and request or response bodies are never written. Open the folder from Settings → About → Logs or Resolvr → Open Logs, and attach the file to a bug report. If the interface fails to render, a recovery screen replaces the blank window.

Fixed

  • Linux: the Window menu did nothing, and About Resolvr showed an empty dialog with a broken icon. Window now minimizes, maximizes and closes, F11 toggles full screen, and About shows the version, license and icon.
  • Saving over an existing operation, in the app or through MCP operation_save, dropped its description and prerequisite flow.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.3_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.3_amd64.AppImage, Resolvr_0.2.3_amd64.deb, Resolvr-0.2.3-1.x86_64.rpm
Windows Resolvr_0.2.3_x64-setup.exe, Resolvr_0.2.3_x64_en-US.msi

Resolvr v0.2.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 08:04

Resolvr 0.2.0

The schema becomes a place you can read, not only autocomplete against — plus import from Postman and Insomnia, an example workspace on first launch, and a response tree that stays fast on very large payloads.

Schema browser

Click any type — in the sidebar, in a field's type, in "used in" — and it opens as a documentation page: description, fields with arguments and default values, deprecations with reasons, enum values, interfaces and implementations, and every place the type is used. Type names are links; the tab keeps back/forward history like a browser. Root fields have Insert query, which builds an operation with a selection set and variables. The sidebar lists root fields, searches fields across all types and groups the rest by kind (objects, inputs, enums, interfaces, unions, scalars).

Large responses

The response tree now renders only the rows in view. Expanding an array of 20 000 objects keeps a few dozen DOM nodes instead of hundreds of thousands; search and expand/collapse work the same.

Import

Settings → Collections + → Import from Postman or Insomnia. Supported: Postman Collection v2.1, Postman Environment, Insomnia export v4. Folders become collections, nested folders prefix the operation name, only GraphQL requests are taken (the rest are counted as skipped), and {{ _.var }} templates become {{var}}. A preview shows what will be created before anything is written; existing collections are never overwritten.

First launch

The welcome screen offers Open the example: a workspace on a public countries API with three queries, an environment variable and a smoke flow with extraction and an assertion. Import is available from the welcome screen as well.

History and tabs

A history entry now opens with its response — status, timing, headers and body — as if the request had just run (bodies are stored up to 512 KB). Entries are labelled by the saved operation name, or the operation name, or the first root field. Clicking a saved operation in a collection focuses its open tab instead of opening a duplicate.

Performance

HTTP connections are pooled — previously every request paid a fresh TCP and TLS handshake. Collections and drafts are read in parallel, typing no longer re-renders the header and sidebar per keystroke, and history is appended instead of rewritten.

Also

  • Environments and endpoints can be added, removed and set as default in workspace settings.
  • README with screenshots and an animated tour.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.2.0_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.2.0_amd64.AppImage, Resolvr_0.2.0_amd64.deb, Resolvr-0.2.0-1.x86_64.rpm
Windows Resolvr_0.2.0_x64-setup.exe, Resolvr_0.2.0_x64_en-US.msi

Installed copies of 0.1.x update themselves: a banner appears shortly after launch.

Resolvr v0.1.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 16:40

Resolvr 0.1.1

A follow-up to the first release: the interface now speaks English and Russian, keyboard shortcuts match the platform, and the window is opaque by default everywhere.

This is the first version delivered through the built-in updater — Resolvr 0.1.0 shows an update banner a few seconds after launch; one click downloads, verifies the signature and restarts.

What's new

Interface language. Settings → Appearance → Language: System, English or Russian. "System" follows the OS language. The choice applies immediately, including the native menu bar. Plural forms follow each language's rules.

Platform-aware shortcuts. Menu accelerators use Cmd on macOS and Ctrl on Windows and Linux; every shortcut label in the interface — buttons, tooltips, command palette — shows the right modifier for the current platform. Previously several shortcuts did not fire on Windows at all.

Opaque window by default. On Windows and Linux the window (including the menu bar) was transparent, because the transparency was designed around macOS vibrancy. The window is now opaque on every platform; transparency and the blur material remain available as a macOS-only setting.

Fixes

  • Deferred draft and session writes no longer run outside the app process (this made the test suite flaky on slower machines).
  • Icons for Linux and Windows installers are now part of the bundle.

Downloads

Platform File
macOS (Apple Silicon + Intel) Resolvr_0.1.1_universal.dmg — not notarized; on first launch right-click → Open
Linux Resolvr_0.1.1_amd64.AppImage, Resolvr_0.1.1_amd64.deb, Resolvr-0.1.1-1.x86_64.rpm
Windows Resolvr_0.1.1_x64-setup.exe, Resolvr_0.1.1_x64_en-US.msi

Full changelog: CHANGELOG.md.