Durable Code Graphs & Honest Provider Readiness
Agents Remember 2.5.0
The CodeGraphContext provider becomes durable and honest about readiness, and the toolchain stops fearing Windows long paths. Born from a real incident: a context packet reported green over a 0-node code graph for three days.
Highlights
- FalkorDB graph data now survives container recreates (configurable
dataDestinationmount fix) - Provider status probes actual graph content:
indexed/indexing/empty/backend-unreachable - Empty-graph targets degrade the global context packet (
ok: false) with per-repo restart recovery actions - New additive
ProviderSummary.indexinglist tells agents a provider is healthy but mid-scan - Watcher self-heal entrypoint guard clears poisoned empty graphs at startup (runner image
0.4.10-ar1) - Crash-safe, long-path-proof skill/runtime sync and a
worktree_startlong-path preflight for native Windows
CGC Provider Durability And Readiness
- FalkorDB data volume binds the backend
dataDestination(default/var/lib/falkordb/data, where FalkorDB v4 actually writes) instead of/data; mount verification follows the setting and mismatched containers are recreated on the next backend start. - The backend healthcheck requires a genuine
PONG, so dataset-LOADINGreplies no longer count as healthy. cgc_statusderivesindexingStatefrom a read-onlyGRAPH.RO_QUERYcontent probe plus watcher scan markers;indexingstays green at every level while busy targets surface in the compact providers summary and the l-01 trust checkpoint doctrine.- All watcher compose runs pass
--remove-orphans, cleaning up watchers of de-configured repos.
Windows Long-Path Hardening
sync-skills.py/sync-runtime.pyuse a staged copy-then-swap with\\?\extended-length path support - a mid-sync crash can no longer gutpackage_data.worktree_startblocks up front with projected path lengths and remedies when a Windows host withoutLongPathsEnabledcannot represent the worktree's deepest tracked files.- The install guide documents the one-time Windows long-path setup; WSL is unaffected.
All changes are backward-compatible. Fixes #47.