mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-01 02:01:24 +00:00
Trigger: a sparse checkout, a skip-worktree/assume-unchanged entry, or an uninitialized submodule leaves `git status` clean, and the run's indexCoverage.dirtyPaths drops paths with no file hash, so publishSharedGraph published a graph missing those files as the commit graph. seedSharedSlot then copied the seed's lastCommit into the new pointer slot, so the next analyze of a sibling hit the up-to-date fast path without hashing. Fix: add isWorkingTreePristine (storage/git.ts): the unfiltered listWorkingTreeDirtyPaths must be empty (null fails closed) and every gitlink in the index must have a checked-out `.git`. publishSharedGraph requires it instead of isWorkingTreeDirty. seedSharedSlot keeps the seed's lastCommit only when the seed is at HEAD and the checkout is pristine, so a clean sibling still fast-paths onto the shared graph; any other seeded pointer gets an empty lastCommit, like seedFromLocalIndex, and its next run hash-diffs, then re-points at the commit graph on publish. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| branch-index.ts | ||
| file-hash.ts | ||
| file-lock.ts | ||
| fs-atomic.ts | ||
| git.ts | ||
| gitnexus-managed-paths.ts | ||
| global-dir.ts | ||
| index-lock.ts | ||
| map-pool.ts | ||
| parse-cache.ts | ||
| parsedfile-store.ts | ||
| repo-manager.ts | ||
| repo-meta.ts | ||
| scope-index-store.ts | ||
| shared-store-lifecycle.ts | ||
| shared-store.ts | ||
| stale-branch-slots.ts | ||
| storage-constants.ts | ||
| storage-resolver.ts | ||
| storage-slot.ts | ||
| v8-sidecar.ts | ||