Commit Graph
100 Commits
Author SHA1 Message Date
Gregory Schier ae943a5fd2 Fix lint: ignore flatpak in biome, fix search cursor iterator usage 2026-02-12 15:34:13 -08:00
Gregory SchierGitHubClaude Opus 4.6 <noreply@anthropic.com
52732e12ec Fix license activation and plugin requests ignoring proxy settings (#393)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com
2026-02-12 14:38:53 -08:00
Gregory Schier 1127d7e3fa Use consistent release title format in generate-release-notes command 2026-02-11 17:38:13 -08:00
7d4d228236 Fix HTTP/2 requests failing with duplicate Content-Length (#391)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 17:11:35 -08:00
Gregory SchierandGitHub 565e053ee8 Fix auth tab crash when template rendering fails (#392) 2026-02-11 14:59:17 -08:00
Gregory Schier 26aba6034f Move faker plugin back to external (plugins-external/faker) 2026-02-11 10:22:20 -08:00
Gregory Schier 9a1d613034 Fix RPM bundle path validation for metainfo file 2026-02-11 08:14:16 -08:00
Gregory Schier 3e4de7d3c4 Move build scripts to Flathub repo, keep release prep scripts here 2026-02-11 07:28:56 -08:00
Gregory Schier b64b5ec0f8 Refresh Git dropdown data on open and fetch periodically
- Add refreshKey to useGit queries so dropdown data refreshes on open
- Convert fetchAll from mutation to query with 10-minute refetch interval
- Re-run status query after fetchAll completes via dataUpdatedAt key
- Use placeholderData to keep previous data during key changes
- Remove disabled state from Push, Pull, and Commit menu items
2026-02-11 07:20:53 -08:00
Gregory Schier 510d1c7d17 Remove Flatpak manifest (lives in Flathub repo) 2026-02-11 06:32:39 -08:00
Gregory Schier ed13a62269 Use static desktop file and clean up manifest comments 2026-02-11 06:30:09 -08:00
Gregory Schier 935d613959 Move lockfile patch to standalone script 2026-02-10 23:35:14 -08:00
Gregory Schier adeaaccc45 Add v2026.2.0 release to metainfo, simplify CI workflow
- Metainfo is managed upstream (updated before tagging)
- CI no longer modifies metainfo; just copies manifest and sources to Flathub
- Flathub manifest installs metainfo from git source
- Permissions reverted to read-only
2026-02-10 23:29:27 -08:00
Gregory Schier d253093333 Revert "Simplify CI: metainfo releases only accumulate in Flathub repo"
This reverts commit f265b7a572.
2026-02-10 23:26:52 -08:00
Gregory Schier f265b7a572 Simplify CI: metainfo releases only accumulate in Flathub repo
- Remove metainfo update from update-manifest.sh
- Remove CI step that committed metainfo back to app repo
- Revert permissions back to read-only
- CI now inserts release entry directly into Flathub repo's metainfo
2026-02-10 23:26:22 -08:00
Gregory Schier 68b2ff016f CI: rewrite metainfo paths for Flathub repo 2026-02-10 23:24:09 -08:00
Gregory Schier a1c6295810 Clean up Flatpak manifest for v2026.2.0
- Update tag to v2026.2.0
- Use SKIP_WASM_BUILD env var instead of build-time package.json patch
- Install metainfo from git source (remove temporary type: file source)
- Fix fix-lockfile.mjs to skip workspace packages
- CI: commit metainfo releases back to app repo, bump permissions to write
2026-02-10 23:19:23 -08:00
Gregory SchierandGitHub 76ee3fa61b Flatpak: build from source instead of repackaging debs (#389) 2026-02-10 23:05:33 -08:00
Gregory Schier 7fef35ce0a Ship metainfo in deb, remove from Flatpak manifest 2026-02-10 15:26:40 -08:00
Gregory Schier 654af09951 Bump GNOME runtime to 49, fix corrupted arm64 SHA256 2026-02-10 15:22:51 -08:00
Gregory SchierandGitHub 484dcfade0 Add Flatpak and Flathub packaging support (#388) 2026-02-10 14:38:40 -08:00
Gregory SchierandClaude Opus 4.6 fda18c5434 Snapshot faker template function names in test
Replace the brittle count assertion (toBe(226)) with a snapshot of all
exported function names. This catches accidental additions, removals,
or renames across faker upgrades with a clear diff.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:22:03 -08:00
Gregory Schier a8176d6e9e Skip disabled key-value entries during request rendering
Skip disabled headers, metadata, URL parameters, and form body
entries in the render phase for HTTP, gRPC, and WebSocket requests.
Previously, disabled entries were still template-rendered even though
they were filtered out later at the use site.
2026-02-09 10:17:43 -08:00
Gregory Schier 957d8d9d46 Move faker plugin from external to bundled 2026-02-09 08:43:49 -08:00
Gregory SchierandGitHub 5f18bf25e2 Replace shell-quote with shlex for curl import (#387) 2026-02-09 08:22:11 -08:00
Gregory Schier 66942eaf2c Update httpsnippet plugin README and bump to v1.0.3 2026-02-07 15:20:20 -08:00
Gregory SchierandGitHub f98a70ecb4 Add dynamic() support to prompt.form() plugin API (#386) 2026-02-07 08:09:40 -08:00
Gregory Schier cc5d4742f0 Don't select current request by default for response chaining 2026-02-05 13:08:08 -08:00
Gregory Schier 5b8e4b98a0 Use "send" preview mode for copy-as-curl 2026-02-05 08:31:28 -08:00
Gregory Schier 8637c90a21 Fix CSV responses ignoring raw view mode 2026-02-05 07:57:12 -08:00
Gregory SchierandGitHub 7c31718f5e Git Improvements (#382) 2026-02-04 11:46:04 -08:00
Gregory Schier 8f1463e5d0 More cleanup 2026-02-04 06:45:55 -08:00
Gregory Schier 0dc8807808 Cleanup more unused functions 2026-02-04 06:44:13 -08:00
Gregory Schier f24a159b8a Clean up unused functions 2026-02-04 06:28:45 -08:00
Gregory Schier 431dc1c896 Adjust dev menu 2026-02-02 17:58:58 -08:00
bc8277b56b Fix header behavior on cross-origin redirects (#378)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 17:58:27 -08:00
Gregory Schier 55cee00601 More reliable plugin runtime kill 2026-02-02 07:45:19 -08:00
Gregory Schier b41a8e04cb Graceful oauth server shutdown 2026-02-02 07:31:55 -08:00
Gregory Schier eff4519d91 Have cancellation work before the request is sent 2026-02-02 07:09:48 -08:00
Gregory Schier f02ae35634 Fix auth plugin dynamic form inputs broken after first request
The call_http_authentication_request handler was mutating auth.args with the result of applyDynamicFormInput(), which strips the dynamic callback functions. This permanently corrupted the plugin module's args, making all dynamic form controls (checkboxes, selects, etc.) unresponsive for that auth type after sending the first request.
2026-01-30 12:47:02 -08:00
c2f068970b Add external browser support for OAuth2 authorization (#375)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:29:49 -08:00
Gregory Schier eec2d6bc38 Fix multipart tab value 2026-01-29 09:01:44 -08:00
efa22e470e Add diff viewer to git commit dialog (#374)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:50:56 -08:00
Gregory SchierandClaude Opus 4.5 c00d2e981f Fix basic auth failing when password field is empty or unset
Handle undefined username/password values by defaulting to empty string,
preventing "undefined" from being encoded in the Authorization header.

Fixes https://feedback.yaak.app/p/strange-basic-auth-behaviour-in-202612

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:07:03 -08:00
Gregory Schier 9c45254952 Fix template tag theme colors 2026-01-28 13:08:22 -08:00
Gregory Schier d031ff231a Bump plugin runtime types 2026-01-28 08:43:19 -08:00
f056894ddb Show full URL parts in Timeline debug view (#373)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:41:17 -08:00
Gregory SchierandClaude Opus 4.5 bd7e840a57 Fix x64 macOS build bundling wrong architecture binaries
Set YAAK_TARGET_ARCH before npm run bootstrap so vendor scripts
download the correct x64 binaries instead of arm64 ones.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 20:00:59 -08:00
Gregory SchierandGitHub 8969748c3c Add option to disable encryption when key is forgotten (#371) 2026-01-26 15:40:02 -08:00
4e15ac10a6 Add folder CRUD operations to MCP server (#369)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:08:24 -08:00
Gregory SchierandGitHub 47a3d44888 Git branch flow improvements (#370) 2026-01-26 14:45:51 -08:00
Gregory Schier eb10910d20 Update HttpMethodTag.tsx 2026-01-22 06:03:04 -08:00
Gregory Schier 6ba83d424d Fix request method dropdown for GraphQL not showing HTTP method 2026-01-22 06:02:49 -08:00
Gregory SchierandGitHub beb47a6b6a Refactor default headers to be injected dynamically (#367) 2026-01-19 07:29:00 -08:00
1893b8f8dd Enable source maps for production builds (#366)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-19 05:12:26 -08:00
Gregory Schier 7a5bca7aae Add text version of the response Timeline tab 2026-01-15 08:14:21 -08:00
Gregory Schier 9a75bc2ae7 Update release notes command 2026-01-15 07:22:46 -08:00
Gregory Schier 9ddaafb79f Fix tab focusability 2026-01-15 07:17:25 -08:00
Gregory Schier de47ee19ec Fix authentication actions being called with unrendered args 2026-01-15 07:10:33 -08:00
Gregory SchierandClaude Opus 4.5 ea730d0184 Fix clicking URL placeholder params not focusing value input
The PairEditor ref callback used strict equality to determine when all
rows were ready, but placeholder params (like :id) regenerate fresh IDs
on every keystroke, causing rowsRef to accumulate entries. Using >=
allows the ref to be set even when there are more registered rows than
current pairs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 11:28:09 -08:00
Gregory Schier fe706998d4 Fix cursor style on template tags 2026-01-14 10:36:42 -08:00
Gregory SchierandClaude Opus 4.5 99209e088f Consolidate tab persistence logic into Tabs component
- Move active tab persistence into Tabs component with storageKey + activeTabKey props
- Change value prop to defaultValue so callers don't manage tab state
- Add TabsRef with setActiveTab method for programmatic tab switching
- Restore request_pane.focus_tab listener for :param placeholder clicks
- Update all Tab consumers to use new pattern

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 10:32:10 -08:00
Gregory SchierandClaude Opus 4.5 3eb29ff2fe Fix gRPC schema refresh not invalidating cache
The skip_cache flag in services() called reflect(), but reflect() had its
own cache check that returned early. Simplified by removing skip_cache and
always invalidating the pool in cmd_grpc_reflect, since that command is
only called when fresh schema is needed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 08:20:03 -08:00
Gregory SchierandClaude Opus 4.5 b759003c83 Fix events from old connections showing in new connections
Events from previous WebSocket/gRPC connections and HTTP responses were
persisting in the store and displaying in new connections. Added filter
parameter to mergeModelsInStore that clears old events when switching
connections, plus render-time filtering as a safety net.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 07:58:32 -08:00
Gregory Schier 6cba38ac89 Strip empty headers before sending 2026-01-14 06:59:05 -08:00
Gregory Schier ba8f85baaf Update feedback links 2026-01-14 06:45:45 -08:00
Gregory Schier 9970d5fa6f Fix lint issues 2026-01-13 09:32:52 -08:00
Gregory Schier d550b42ca3 Add count badge to DNS tab and make workspace settings tabs reorderable 2026-01-13 09:24:56 -08:00
Gregory Schier 2e1f0cb53f Adjust tab list margins 2026-01-13 09:24:53 -08:00
Gregory Schier eead422ada Fix HeadersEditor padding when no inherited headers 2026-01-13 09:24:48 -08:00
Gregory Schier b5753da3b7 Fix dropdown opening on first click of inactive tab 2026-01-13 09:24:44 -08:00
Gregory Schier ae2f2459e9 Improve EventViewer UX
- Separate selected item from panel open state (closing panel keeps selection)
- Scroll selected item into view when detail panel opens
- Enter/Space opens detail panel, Escape closes it
- Remove browser focus outline on scroll container
- Add prefix prop to EventDetailHeader for labels
- Make timestamp optional in EventViewerRow
- Add close button to EventDetailHeader
- Fix title truncation with min-w-0
- Consolidate HttpResponseTimeline title generation
- Add ID/event labels to SSE detail header
- Remove fake timestamp from SSE events

Closes https://feedback.yaak.app/p/feedback-on-sse-viewer-ux-in-yaak
2026-01-13 09:05:50 -08:00
306e6f358a feat: Add DNS timings and resolution overrides (#360)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 08:42:22 -08:00
Gregory Schier 822d52a57e Better logging for plugin timeouts 2026-01-13 07:26:32 -08:00
Gregory Schier e665ce04df Fix plugins commands 2026-01-12 12:58:39 -08:00
Gregory Schier 42143249a2 Prevent Windows console window for yaaknode and yaakprotoc
Add new_xplatform_command() helper in yaak-common that creates a
tokio::process::Command with CREATE_NO_WINDOW flag set on Windows.

Also converts git commands to async for consistency.
2026-01-11 15:07:56 -08:00
Gregory Schier 72a7e6963d Separate entitlements for main app, yaaknode, and yaakprotoc 2026-01-11 14:05:47 -08:00
Gregory Schier 494e9efb64 Apply entitlements when signing vendored binaries 2026-01-11 14:03:35 -08:00
Gregory Schier 9fe077f598 Sign vendored binaries with hardened runtime on macOS 2026-01-11 10:14:39 -08:00
Gregory Schier a6eca1cf2e Add Windows binary paths to tauri resources 2026-01-11 09:55:12 -08:00
Gregory Schier 31edd1013f Add missing bootstrap step to release workflow 2026-01-11 09:42:36 -08:00
Gregory Schier 28e9657ea5 Add EventDetailHeader component and fix EventViewer overflow
- Create standardized EventDetailHeader with title, timestamp, actions, and copyText props
- Fix EventViewer firstSlot overflow/scrolling issue
- Update GrpcResponsePane, WebsocketResponsePane, HttpResponseTimeline, and EventStreamViewer to use EventDetailHeader
- Fix Timeline title consistency when toggling Raw/Formatted views
2026-01-11 08:51:36 -08:00
Gregory SchierandGitHub ff084a224a Consolidate event viewer interfaces (#355) 2026-01-11 07:57:05 -08:00
Gregory Schier bbcae34575 Fix race condition where streamed events could be lost
Events stream in via model_write listener while also being fetched
from the database. If the DB fetch completed before all events were
persisted, replaceModelsInStore would wipe out events that came in
via model_write.

Added mergeModelsInStore that adds fetched events without removing
existing ones. Applied to HTTP, gRPC, and WebSocket event hooks.
2026-01-11 07:42:04 -08:00
Gregory Schier 2a5587c128 Show sent/received cookie counts in Cookies tab
- Add getCookieCounts function to parse cookie headers and count
  individual cookies (not just headers)
- Deduplicates by cookie name using Sets
- Display as sent/received format like Headers tab
- Add showZero to CountBadge so 0/3 displays properly
- Add tests for getCookieCounts
2026-01-11 07:20:01 -08:00
Gregory Schier c41e173a63 Fix dropdown menu hotkeys not working when menu is closed
The nested menu PR introduced an early return null when !isOpen,
which prevented MenuItemHotKey components from being rendered.
Fixed by extracting hotKeyElements and rendering them even when
the menu is closed.
2026-01-11 07:19:56 -08:00
Gregory Schier 2b43407ddf Fix gRPC autocomplete schema not being applied
Two issues fixed:

1. Initialize stateExtensions with empty object {} instead of undefined.
   When called with no argument, the schema state was undefined, causing
   jsonCompletion() to return [] instead of a proper result object, which
   CodeMirror's autocomplete didn't handle correctly.

2. Change editorView from useRef to useState so the effect that calls
   updateSchema() properly re-runs when the editor view is set. With useRef,
   the effect could run before the editor was mounted or with a stale
   reference when the editor was recreated.
2026-01-10 14:57:28 -08:00
Gregory Schier 4d75b8ef06 Surface gRPC message deserialization errors to UI
Previously, when a gRPC streaming message failed to deserialize (e.g., wrong
type like int instead of string), the error was silently logged and the message
was dropped. Now errors are surfaced to the UI as GrpcEventType::Error events.

Changed the streaming/client_streaming methods to accept an on_message callback
that handles both success (logs ClientMessage) and error (logs Error) cases,
rather than logging the client message prematurely before deserialization.
2026-01-10 14:57:28 -08:00
Gregory Schier aa79fb05f9 Fix gRPC stream panic: use async stream combinators instead of block_on
The gRPC streaming code was using tokio::runtime::Handle::current().block_on()
inside filter_map closures, which caused a panic ('Cannot start a runtime from
within a runtime') when called from an async context.

Fixed by replacing the pattern with .then(async move { ... }).filter_map(|x| x)
which properly handles async operations in stream pipelines.

This fixes the gRPC Ping/Pong freeze issue and restores request cancellation.
2026-01-10 14:57:28 -08:00
Gregory SchierandGitHub fe01796536 feat: add ctx.prompt.form() plugin API for multi-field form dialogs (#359) 2026-01-10 08:55:43 -08:00
Gregory SchierandGitHub 6654d6c346 fix: add default headers only to new workspaces on insert (#356) 2026-01-09 17:18:09 -08:00
Gregory Schier 2bf7cf5eeb Log db path and remove tauri.worktree.conf.json (accidentally commit) 2026-01-09 14:30:48 -08:00
Gregory Schier f2be52bfec Fix npm audit 2026-01-09 14:23:03 -08:00
Gregory SchierandGitHub ef80216ca1 Decouple core Yaak logic from Tauri (#354) 2026-01-08 20:44:25 -08:00
Gregory SchierandGitHub 3bcc0b8356 Add support for nested sub menus (#352) 2026-01-07 15:10:44 -08:00
ebcdee9be0 Add configurable hotkey for editor autocomplete trigger (#350)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 15:10:33 -08:00
Gregory Schier 873abe69a1 Merge branch 'main' of github.com:mountain-loop/yaak 2026-01-07 14:52:34 -08:00
Gregory Schier 33afafd890 Use unique Tauri identifier per worktree for app data isolation 2026-01-06 15:09:06 -08:00
Gregory SchierandGitHub ac7de993ba Add 1Password caching to prevent rate limiting (#349) 2026-01-06 15:02:22 -08:00
Gregory SchierandGitHub 1f8fa0f8c3 Separate app DB per Git worktree (#348) 2026-01-05 15:35:25 -08:00