Gregory SchierandClaude Opus 5 a939f2ac55 fix(git): stop polling a sync directory that is not a git repository
A workspace whose sync directory points at a plain folder still ran the whole
git polling loop. `useGitFetchAll` was unconditional, and `cmd_git_fetch_all`
shells out twice — once to probe `git --version`, once for the fetch itself —
so every window focus spawned two processes to be told

    fatal: not a git repository (or any of the parent directories): .git

`cmd_git_branch_info` failed alongside it, and neither backed off, so the
failures repeated for as long as the workspace stayed open. Reported by a user
whose console was full of both errors.

Branch info (or status, in the dialogs) is now the repository probe, and the
fetch only runs once that probe has succeeded. A non-repository sync directory
therefore costs one libgit2 lookup rather than a pair of subprocesses. Since
branch info is no longer keyed on the fetch timestamp, a completed fetch
invalidates what it invalidates instead — which also stops the branch-info cache
growing an entry per fetch.

Failed git queries now pace themselves: `shouldRetryAfterFailure` holds a query
back for 30s after its first failure and doubles that per consecutive failure up
to ten minutes. That predicate drives `refetchOnWindowFocus` and `retryOnMount`
both: a probe that has never succeeded has no data, so `refetchOnMount` never
gets consulted (`shouldLoadOnMount` in query-core short-circuits on
`state.data === undefined`), and without `retryOnMount` reopening the commit or
remotes dialog on a non-repository re-ran the failed probe immediately.

Any git mutation still invalidates the whole `["git"]` key, so an actual
`git init` takes effect straight away.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 17:01:52 -07:00
2026-08-16 22:32:33 -07:00

💫 Yaak ➟ Desktop API Client 💫

A fast, privacy-first API client for REST, GraphQL, SSE, WebSocket, and gRPC built with Tauri, Rust, and React.

Development is funded by community-purchased licenses. You can also become a sponsor to have your logo appear below. 💖


User avatar: MVST-Solutions  User avatar: dharsanb  User avatar: railwayapp  User avatar: caseyamcl  User avatar: bytebase  User avatar:   

User avatar: seanwash  User avatar: jerath  User avatar: itsa-sh  User avatar: dmmulroy  User avatar: timcole  User avatar: VLZH  User avatar: terasaka2k  User avatar: andriyor  User avatar: majudhu  User avatar: axelrindle  User avatar: jirizverina  User avatar: chip-well  User avatar: GRAYAH  User avatar: flashblaze  User avatar: Frostist  User avatar: PurplProto  

Yaak API Client

Features

Yaak is an offline-first API client designed to stay out of your way while giving you everything you need when you need it. Built with Tauri, Rust, and React, its fast, lightweight, and private. No telemetry, no VC funding, and no cloud lock-in.

🌐 Work with any API

  • Import collections from Postman, Insomnia, OpenAPI, Swagger, or Curl.
  • Send requests via REST, GraphQL, gRPC, WebSocket, or Server-Sent Events.
  • Filter and inspect responses with JSONPath or XPath.

🔐 Stay secure

  • Use OAuth 2.0, JWT, Basic Auth, or custom plugins for authentication.
  • Secure sensitive values with encrypted secrets.
  • Store secrets in your OS keychain.

☁️ Organize & collaborate

  • Group requests into workspaces and nested folders.
  • Use environment variables to switch between dev, staging, and prod.
  • Mirror workspaces to your filesystem for versioning in Git or syncing with Dropbox.

🧩 Extend & customize

  • Insert dynamic values like UUIDs or timestamps with template tags.
  • Pick from built-in themes or build your own.
  • Create plugins to extend authentication, template tags, or the UI.

Contribution Policy

Important

Community PRs are currently limited to bug fixes. If your PR is not a bug fix, link the feedback item where @gschier explicitly gave you permission to work on it. See CONTRIBUTING.md for policy details and DEVELOPMENT.md for local setup.

Useful Resources

S
Description
No description provided
Readme MIT
106 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 54.2%
Rust 42.6%
JavaScript 2.5%
CSS 0.5%
HTML 0.1%