GitNexus/gitnexus/test
Gergo Magyar 62ffee3218 fix(storage): rebuild a shared slot whose graph is missing (#3374)
A publish interrupted between moving the checkout's graph into
`.publish-<uuid>` staging and renaming staging onto the commit dir left
slot metadata at HEAD with no graph and no graphPath; the next reclaim
deleted the orphaned staging. The up-to-date fast path never checked that
the graph exists, so every later analyze reported "Already up to date"
over a checkout with no index. A failed restore in publishSharedGraph's
catch had the same outcome, and also deleted the staging dir holding the
only copy of the graph.

- run-analyze: for a shared-store slot, stat the graph the checkout reads
  (resolveGraphPath for the flat slot, the branch slot's own lbug
  otherwise) before the fast path; if it is missing, force a full
  rebuild. An incremental run would diff nothing into a fresh, empty
  database. Private .gitnexus indexes are unchanged: they only lose their
  graph by hand, and metadata-only fast-path fixtures rely on that path.
- publishSharedGraph: when moving the staged graph back fails and it is
  still in staging, keep the staging dir, log its path, and skip this
  run's reclaim, which would otherwise delete it. The next analyze finds
  no graph and rebuilds.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 07:26:12 +00:00
..
fixtures fix(swift): resolve nested constructors in extensions (#3308) 2026-09-19 09:46:53 +01:00
helpers refactor(analyze): move detected-branch sanitization off CLI config (#3325) 2026-09-18 11:03:24 +01:00
integration fix(storage): rebuild a shared slot whose graph is missing (#3374) 2026-09-25 07:26:12 +00:00
unit fix(storage): never share a graph from a checkout that hides files (#3374) 2026-09-25 06:50:08 +00:00
utils feat(storage): add configurable index storage and content retention tiers (#3060) 2026-09-12 20:31:55 +00:00