From a61c456388502b6060c3d7b9ca5cfdc936c712e5 Mon Sep 17 00:00:00 2001 From: Max Hsu Date: Thu, 11 Jun 2026 08:58:58 +0800 Subject: [PATCH] fix(sync): apply ignore matcher to git change-detection fast path (#766) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The git fast path in change detection consumed git status output unfiltered, while file enumeration filters through the built-in default ignores (getGitVisibleFiles). A tracked file inside a committed dependency/build dir (vendor/, node_modules/, …) that the index excludes therefore leaked into status as a perpetual pending add that no sync or re-index could ever clear. Apply the same buildDefaultIgnore matcher in the modified+added loop; deletions stay unfiltered since they only act on paths already tracked in the DB. Reported with a verified patch by @monochrome3694. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGELOG.md | 1 + __tests__/sync.test.ts | 30 ++++++++++++++++++++++++++++++ src/extraction/index.ts | 11 +++++++++++ 3 files changed, 42 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 570b17537..663760a36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Symbols defined in Svelte and Vue `