Skip to content

Live / dirty-buffer indexing to eliminate index staleness (overlay + checkpoint) #29

Description

@100yenadmin

Prior art: SDL-MCP live-indexing (https://github.com/GlitterKill/sdl-mcp — see docs/feature-deep-dives/).

Gap in GitNexus: the index reflects committed state and lags HEAD (and lags unsaved edits entirely). Today's mitigation is "re-run analyze after a merge" + the freshness hook that notifies rather than auto-updating (to avoid LadybugDB write contention while MCP servers read). Result: agents query a graph that can be N commits / N edits behind reality, guarded only by the "trust d=1, verify against source" discipline.

Proposed feature — an optional live/overlay index layer:

  • buffer/save pushes (debounced) → background tree-sitter parse → an overlay store where draft symbols shadow their durable counterparts → checkpoint into the durable index on idle (e.g. 15s).
  • queries read the overlay first, falling back to durable.

Value: removes the staleness caveat that currently makes impact()/query() over recently-changed code unreliable. The small incremental overlay writes also sidestep the heavy-analyze write-contention problem that blocks auto-refresh today.

Pragmatic first step: even commit-granularity (incrementally index the working-tree diff vs the last-indexed commit) would close most of the gap and is simpler than keystroke-level live indexing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions