Repository navigation
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: microsoft/tgrep
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.2.3
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: microsoft/tgrep
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.2.4
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 1 commit
- 49 files changed
- 2 contributors
Commits on Oct 20, 2026
-
Review fixes, Chromium worktree benchmark, and managed attach perform…
…ance (#210) (#211) * Fix review findings and add Chromium worktree benchmark - query: replace dropped lookarounds with an empty group so neighbours cannot fuse into a different repetition during index relaxation - cli: -M 0 means no column limit, matching ripgrep - cli: explicit file arguments bypass -g/-t/-T filters, matching ripgrep - shared daemons: tolerate transient accept() failures with bounded retry - builder: fsync index.bin/lookup.bin before publication - scripts: benchmark_worktrees.py measures ordinary index, cold managed base build, linked worktree attach, and base vs worktree query times - ci: manual Chromium multi-worktree benchmark workflow Co-authored-by: Copilot App <[email protected]> * Address issue #210: faster managed attach, eventual-consistency serving, scheduler fixes - Fix scheduler stall and pace idle catalog ticks; re-enqueued work counts as progress - Serve ready views while reconciliation catches up (eventual consistency) - Filter unchanged watcher events and expose watch counters - Remove query cliffs; page large results; JSON stats fixes - Parallel base generation build; larger proof batches; batched catalog commits - Retry backoff, housekeeping precheck, Windows parent-handle gate 8192 - Keep binary-extension files from splitting verified-read batches - Benchmark harness records per-query timeouts; document Chromium results Co-authored-by: Copilot App <[email protected]> * Benchmark: document base vs worktree query latency; skip hidden dirty files Co-authored-by: Copilot App <[email protected]> * Serve provisional base on first eventual managed attach An eventual (stale_reads) view's first attachment now publishes the pinned generation after the metadata walk, tombstoning paths whose content is not from the base. The view reports serving:true, ready:false and the scheduler runs full content verification before it becomes ready. FileVersion evidence is recorded only when validated around an actual read. The Chromium harness records time-to-serving separately from time-to-ready and reports verification counters from the reconcile that made the view ready. Co-authored-by: Copilot App <[email protected]> * Keep legacy attach ready; tests wait for verified managed views Legacy v1 attachments keep their ready-on-attach contract. Managed integration tests that search immediately after a first attach now wait for the provisional view to finish content verification. Co-authored-by: Copilot App <[email protected]> * Benchmark: document provisional first-attach serving on Chromium Co-authored-by: Copilot App <[email protected]> * Fix hook-gated managed tests for provisional first attach Rename the readiness helper to verified_attach so it no longer collides with local 'attached' bindings in managed-test-hooks modules, and make the remaining hook-gated tests wait for (or assert) provisional first-attach verification. Co-authored-by: Copilot App <[email protected]> * Reclaim catalog WAL before refusing storage admission Storage admission charges catalog WAL bytes, which are only checkpointed once the WAL reaches a quarter of the metadata budget. A retryable namespace-storage-allocation refusal could therefore persist until unrelated writes crossed that threshold. Truncate the WAL once and re-evaluate before refusing, and include the usage breakdown in the collection test's admission panic. Co-authored-by: Copilot App <[email protected]> * Derive collection admission test limit from checkpointed footprint Admission now reclaims catalog WAL frames before refusing, so the macOS layout's expected refusal can no longer rely on WAL bytes. Size the storage limit from the truncated catalog footprint so retained stages alone close admission and their reclamation alone reopens it on every platform. Co-authored-by: Copilot App <[email protected]> * Settle view work before applying the test reconcile timer A concurrent scheduler pass can accept a reconciliation while the testing.reconcile-timer hook is between invalidating and recording its own pending operation. The duplicate then stays queued or deferred after the view becomes ready, so the next timer call returned early without invalidating. The hook now waits for the view's running and queued work to settle before evaluating the injected elapsed time. Co-authored-by: Copilot App <[email protected]> * Address review: page deadline per file, discard eventual group rows on replaced parent - GroupSearch now checks an optional page deadline at every file boundary, so a slow window ends the page with the searched prefix and a next_page cursor instead of overrunning the operation deadline. The single-file progress retry stays deadline-free so every page makes progress. - When an eventual sibling batch fails final parent verification, the group's rows are dropped, their response budget is refunded, and the paths stay requeued, matching how vanished candidates are skipped. - Extract a managed query test fixture and cover both behaviours. - Limit the Chromium benchmark workflow token to contents: read. Co-authored-by: Copilot App <[email protected]> * Address review: sample catalog usage under the writer lock; render partial worktree reports Storage admission sampled catalog file sizes before catalog_io::begin, which can checkpoint and truncate a WAL past metadata_bytes / 4, so a stale sample refused reservations that fit and the empty-WAL reclaim could not retry. Sample inside the admission transaction instead. The benchmark Markdown report no longer raises KeyError for a worktree whose attachment failed or timed out; it renders an incomplete row and the run error. Co-authored-by: Copilot App <[email protected]> * Bump version to 1.2.4 Co-authored-by: Copilot App <[email protected]> * Read tracked files from split Git indexes Honor the index 'link' extension: load the shared index it names, apply the replace and delete bitmaps, and fall back to a filesystem walk when the shared index is missing or inconsistent. Co-authored-by: Copilot App <[email protected]> * Keep path names exact in index keys Outside Windows a backslash is an ordinary file-name character, so stop rewriting it to '/'. Files whose names an index cannot represent (not UTF-8, or containing '\' outside Windows) are left out of the index with a warning and remain searchable with --no-index. Co-authored-by: Copilot App <[email protected]> * Harden the search server and fix CLI output edge cases - fsync staged index files and serve.json, and their directories, when publishing them - record a random server instance in serve.json and verify it on every response, so a stale file pointing at a reused port is not trusted - remove serve.json on SIGTERM as well as Ctrl-C - bound concurrent connections, idle/write timeouts, response size and regex compilation limits on the server - give 'status' a read timeout and fall back to local state - repair a watcher overflow within 10s even when events never pause - exit 2 when a file cannot be read during a search - apply -0 to every printed path and make --trim strip only leading whitespace, as ripgrep does - use path arguments verbatim instead of trimming quotes and spaces Co-authored-by: Copilot App <[email protected]> * Restore file permissions when a Unix test read lock drops Co-authored-by: Copilot App <[email protected]> * Fix Unix path display tests and agent restart race Verbatim-prefix stripping is Windows-only: on Unix a name beginning with \\?\ is ordinary and must be shown as is. The Windows display tests are gated accordingly, with a Unix test for backslash names. A server now removes serve.json on SIGTERM before exiting, while it still holds the inherited start.lock. The agent runtime waited for neither and fell back to a scan; it now waits briefly for the lock, or for a server to publish. Co-authored-by: Copilot App <[email protected]> * Gate verbatim display-path tests to Windows Co-authored-by: Copilot App <[email protected]> * Exclude .git from hidden parity check; record PR #211 Chromium validation On Windows the shared daemon holds a byte-range lock on .git/tgrep-daemon-v1.lock, so a --no-index --hidden scan reports it unreadable and exits 2 like ripgrep. Indexed queries never include .git, so the parity case excludes it explicitly. Co-authored-by: Copilot App <[email protected]> * Give collection admission test an operation budget for loaded hosts The warm-admission operation spans the whole collection loop, which can exceed the fixture's 30 s operation_timeout_ms under a parallel test run and fail reserve with operation-deadline. Co-authored-by: Copilot App <[email protected]> * Retry owner-hold refusal probes on catalog contention A daemon catalog write can outlast the 250 ms SQLite writer wait, so a refusal probe may legally see retryable, uncommitted busy/catalog-io first. Rerun the exited helper with the same claim, as the client contract and retry_catalog_busy already do. Co-authored-by: Copilot App <[email protected]> * Stabilize managed tests around provisional verification and catalog contention retained_checkpoint now waits for the eventual first attachment's verification and collects the superseded provisional checkpoint before the refresh, so the refresh retires the only collectible checkpoint. Previously a collection pass could reach member-before-io on the provisional checkpoint before skipping the reader-guarded target (reproduced deterministically by delaying the refresh). The missing-evicted exact-commit test retries its final attach on documented retryable, not-committed catalog-io contention with a fresh token. Co-authored-by: Copilot App <[email protected]> --------- Co-authored-by: Copilot App <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0be7a76 - Browse repository at this point
Copy the full SHA 0be7a76View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.2.3...v1.2.4