diff --git a/.gitignore b/.gitignore index 967989d04c..4f16ccaf74 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,16 @@ packages/desktop/deploy/ # vi.mock interception for imports nested inside the bundle; see the script # comment (scripts/build-engine-core-gate-bundle.mjs) for the full repro. packages/core/.gate-bundle/ + +# FNXC:KnowledgeGraph 2026-08-10-18:32: +# `fn knowledge-graph build` output (FN-8920 memory epic). Deterministic and fully +# regenerable from source, with SHA-256 fingerprints in the manifest driving +# incremental rebuilds — so committing it preserves nothing that a rebuild cannot +# reproduce. It is ~85MB (edges.json alone is 43MB, past GitHub's 50MB warning +# threshold) and rewritten on every build, so tracking it would add irreversible, +# compounding history bloat to every clone and CI checkout. +# Operator decision, 2026-08-10: ignore it. docs/knowledge-graph.md previously said +# "it is not ignored" and left committing to the operator; that guidance is updated +# alongside this entry. An operator who does want a snapshot committed can still +# force it with `git add -f .fusion-knowledge/graph`. +.fusion-knowledge/ diff --git a/docs/knowledge-graph.md b/docs/knowledge-graph.md index 264747c823..8bf2b49e8d 100644 --- a/docs/knowledge-graph.md +++ b/docs/knowledge-graph.md @@ -8,7 +8,9 @@ The default `knowledgeGraphDir` is `.fusion-knowledge/graph`, deliberately outside ignored `.fusion/`. It contains `nodes.json`, `edges.json`, and `manifest.json`; all use sorted, LF JSON. Nodes and edges are written before the manifest so a torn write safely triggers a full rebuild. The manifest records SHA-256 fingerprints and import references, enabling changed files only to be re-extracted and deleted file ownership to be pruned. -The artifact is intentionally not committed by this change. Operators may review and commit it with `git add .fusion-knowledge/graph`; it is not ignored. +The artifact is not committed. As of 2026-08-10 `.fusion-knowledge/` is gitignored: the graph is deterministic and fully regenerable from source (the manifest's SHA-256 fingerprints drive incremental rebuilds), so tracking it preserves nothing a rebuild cannot reproduce, while costing ~85MB of irreversible, compounding history bloat on every clone and CI checkout — `edges.json` alone is 43MB, past GitHub's 50MB warning threshold. Regenerate it with `fn knowledge-graph build` rather than pulling it. + +An operator who explicitly wants a snapshot in history can still force one with `git add -f .fusion-knowledge/graph`; prefer a rebuild. ## Model