Neil
8ac1c6e2ac
perf(git): bound ref and worktree scans ( #17655 )
...
* perf(git): bound ref and worktree scans
* fix(repo-search): clamp oversized ref limits
* fix(worktree): keep strict worktree listing unshared
The shared-scan re-export flipped every `listWorktreesStrict` caller from an
isolated subprocess to the coalesced scan. `git worktree prune` in the removal
recovery path does not bump the scan generation, so a post-prune verification
could join a pre-prune scan, see the stale row, and report a successful removal
as a stale registration. The same gap defeats the post-archive-hook rechecks
that exist to catch an external Git client locking the row.
Restore the unshared export and make coalescing opt-in via
`listWorktreesSharedStrict`, which existing callers already use deliberately.
* fix(git): separate a proven absent ref from a failed probe
`show-ref --verify --quiet` exits 1 for a missing ref, but so does `wsl.exe`
when its own launch fails, so reading any exit 1 as absence collapsed
`unverifiable` into `exited`. A genuine miss prints nothing while a wrapper
failure always explains itself, so require empty stderr alongside the exit
code; a runner that reports no stderr at all keeps its exit-code contract.
That same signal removes a spawn regression: `show-ref` is a direct-git read
under WSL, and the runner retried any numeric exit through the user's
interactive login shell. The replaced `for-each-ref` exited 0 on a miss, so
absence never retried; every absent probe now would. Treat a quiet exit 1 as
Git control flow and skip the fallback.
Also narrow the hosted-review suffix fallback: the replaced
`refs/remotes/*/<base>` could not cross a slash, but `show-ref -- <base>`
matches at any depth, so `origin/feature/main` answered a query for `main`
and submitted a review against a base the provider rejects.
Refresh the real-binary compatibility contract to the shipped excludes, and
assert exact probe concurrency rather than an upper bound so a regression to
serial probing fails.
2026-08-31 16:27:28 -07:00
..
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-13 21:51:55 -07:00
2026-07-23 18:35:31 -07:00
2026-08-28 04:17:45 -07:00
2026-08-27 12:32:29 -07:00
2026-08-24 20:45:38 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 14:27:16 -07:00
2026-08-17 11:10:38 -07:00
2026-08-30 21:20:53 -07:00
2026-08-28 04:17:45 -07:00
2026-07-27 23:50:25 -07:00
2026-08-27 12:32:29 -07:00
2026-08-28 04:17:45 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-05 02:56:07 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-11 18:19:43 -07:00
2026-08-05 10:30:04 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-10 05:56:39 -07:00
2026-08-10 01:17:14 -07:00
2026-08-18 12:37:39 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-16 13:45:54 -07:00
2026-08-07 23:02:29 -07:00
2026-08-10 00:59:51 -07:00
2026-08-10 00:59:51 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-27 23:27:39 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-19 17:14:55 -07:00
2026-08-18 13:32:48 -07:00
2026-08-10 17:25:26 -07:00
2026-08-22 13:06:38 -07:00
2026-08-22 13:06:38 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-08-18 13:32:48 -07:00
2026-08-01 14:27:16 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-05 17:11:28 -07:00
2026-08-27 23:27:39 -07:00
2026-08-10 17:25:26 -07:00
2026-08-18 13:32:48 -07:00
2026-07-08 12:01:06 -07:00
2026-07-08 12:01:06 -07:00
2026-08-30 23:04:08 -07:00
2026-08-30 23:04:08 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-06-15 22:13:46 -07:00
2026-06-29 22:38:29 -07:00
2026-08-31 16:27:28 -07:00
2026-08-21 14:44:08 -07:00
2026-07-16 18:21:08 -07:00
2026-08-01 21:59:41 -07:00
2026-08-01 21:59:41 -07:00
2026-08-25 22:19:04 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 19:10:01 -07:00
2026-08-29 20:19:09 -07:00
2026-06-19 17:14:55 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-21 14:44:08 -07:00
2026-07-10 18:19:36 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-25 22:19:04 -07:00
2026-07-13 12:42:55 -07:00
2026-06-16 18:10:01 -07:00
2026-08-13 22:48:24 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-07-12 21:04:13 -07:00
2026-08-30 14:19:05 -07:00
2026-08-30 23:04:51 -07:00
2026-07-11 01:30:19 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-20 14:50:12 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-08-15 00:54:20 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 20:25:48 -07:00
2026-08-11 18:19:43 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-05-31 01:50:16 -07:00
2026-07-10 18:19:36 -07:00
2026-08-30 16:36:14 -07:00
2026-07-15 15:24:15 -07:00
2026-07-15 15:24:15 -07:00
2026-08-30 16:36:14 -07:00
2026-08-22 23:00:31 -07:00
2026-08-22 23:00:31 -07:00
2026-07-10 18:19:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-07 09:55:54 -07:00
2026-08-05 14:46:00 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 20:19:18 -07:00
2026-07-29 20:19:18 -07:00
2026-07-27 01:14:33 -07:00
2026-08-11 21:16:36 -07:00
2026-08-11 21:16:36 -07:00
2026-08-09 16:45:27 -07:00
2026-08-11 22:13:35 -07:00
2026-05-14 16:06:23 -07:00
2026-05-14 16:06:23 -07:00
2026-08-18 18:55:56 -07:00
2026-08-10 20:49:21 -07:00
2026-08-07 21:59:24 -07:00
2026-08-07 21:59:24 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 01:17:14 -07:00
2026-08-10 01:17:14 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 01:28:29 -07:00
2026-08-31 08:17:40 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 12:44:41 -07:00
2026-07-27 16:40:59 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-30 18:13:36 -07:00
2026-08-21 21:54:57 -07:00
2026-08-31 12:44:41 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 03:10:44 -07:00
2026-08-31 03:10:44 -07:00
2026-08-28 04:17:45 -07:00
2026-07-14 15:23:06 -07:00
2026-07-14 15:23:06 -07:00
2026-08-24 19:55:57 -07:00
2026-08-30 12:36:23 -07:00
2026-08-30 12:36:23 -07:00
2026-07-08 13:06:39 -07:00
2026-07-08 13:06:39 -07:00
2026-08-01 22:21:37 -07:00
2026-08-01 14:27:16 -07:00
2026-08-02 00:58:10 -07:00
2026-08-01 15:45:45 -07:00
2026-08-01 15:45:45 -07:00
2026-08-24 19:55:57 -07:00
2026-07-29 17:03:15 -07:00
2026-08-01 14:24:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-01 14:27:16 -07:00
2026-08-24 19:55:57 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-07-30 18:42:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-06-29 22:38:29 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 01:17:14 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 02:56:52 -07:00
2026-07-15 15:23:35 -07:00
2026-08-01 02:56:52 -07:00
2026-07-13 05:32:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-08-24 19:55:57 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-08 13:59:42 -07:00
2026-07-08 13:59:42 -07:00
2026-07-26 12:50:05 -07:00
2026-07-26 12:50:05 -07:00
2026-08-28 04:17:45 -07:00
2026-08-28 04:17:45 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-08-17 00:55:04 -07:00
2026-08-21 13:15:46 -07:00
2026-08-21 13:15:46 -07:00
2026-08-05 02:56:07 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-30 18:42:10 -07:00
2026-07-31 05:44:53 -07:00
2026-07-16 21:32:13 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-08-30 14:49:18 -07:00
2026-08-17 22:39:02 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 18:55:56 -07:00
2026-07-05 23:56:37 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-08-29 20:06:41 -07:00
2026-07-10 00:19:45 -07:00
2026-08-01 14:27:16 -07:00
2026-08-25 15:36:51 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-25 02:30:59 -07:00
2026-08-09 16:45:27 -07:00