Repository navigation
Modules:ImportSourceNodes — imports can skip persisting compile inputs as nodes (#2193 §B, step 1) - #2200
Merged
Conversation
…s as nodes The first sequenced step of moving module source out of the mesh database (MeshWeaver#2193 §B): a purge that runs before imports stop re-creating source is undone by the next sync, so the import mode lands first. With Modules:ImportSourceNodes=false, both import lanes — package installs (PackageInstaller.ParseAll) and GitSync imports (ParseSnapshot) — skip files under Source/ and Test/ directories entirely: not parsed, not persisted, reported once per import as a counted policy line (never per-file noise). The predicate is NodeFileMapper.IsCompileInputPath — directory segments exactly 'Source'/'Test', the same convention the compile-input resolution and the installer's owning-type derivation use; a node FILE named Test.json and folders merely containing the words stay nodes/content. Default ON (sources are imported) — unchanged behaviour, pinned. The mode is only sane together with Modules:RequirePrebuilt: a mesh that still compiles on a miss but holds no sources would fail its recompiles, so both lanes warn loudly on that combination instead of guessing. Pinned in NodeFileMapperTest (the predicate's exact-directory contract) and ImportSourceNodesTest (flag off: no nodes, one counted Info line, no warnings; flag on: the built-in C# parser produces the same Code nodes as today). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Contributor
Contributor
Contributor
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Contributor
Contributor
rbuergi
added a commit
that referenced
this pull request
Aug 28, 2026
Modules:ImportSourceNodes — imports can skip persisting compile inputs as nodes (#2193 §B, step 1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #2198 (base retargets to
mainautomatically when it merges). Implements the first sequenced step of MeshWeaver#2193 §B — imports must stop re-creating source before any existing source nodes can be retired; a purge before this lands is undone by the next sync.What changed
New deployment flag
Modules:ImportSourceNodes(default on — sources are imported, unchanged). When set tofalse:PackageInstaller.ParseAll) and GitSync imports (GitHubSyncService.ParseSnapshot) neither parse nor persist files underSource//Test/directories. The skip is reported once per import as a counted policy line — never per-file noise (the O(n²) progress-write rule holds).NodeFileMapper.IsCompileInputPath— directory segments exactlySource/Test, the same convention the compile-input resolution and the installer's owning-type derivation use. A node file namedTest.jsonand folders merely containing the words (Sources/,Testing/) stay nodes/content.Modules:RequirePrebuiltis off (the mesh still compiles on a miss) would fail every recompile for lack of sources — both lanes warn explicitly instead of guessing; the operator's setting is honoured.Contract pinned
NodeFileMapperTest.CompileInputPaths_AreTheSourceAndTestDirectories_Exactly— the predicate's exact-directory, case-sensitive contract (18/18 suite green).ImportSourceNodesTest— flag off: zero nodes from Source/Test files, one counted Info line, no warnings; flag on (default): the built-in C# parser produces the sameCodenodes as today, byte for byte.dotnet build -c Release -p:CIRun=true -warnaserrorclean on GitSync, PluginCatalog, Graph.Rollout
No behavior change until a deployment opts in; intended to be enabled together with
Modules:RequirePrebuilton adopt-only meshes. The purge of EXISTING source nodes remains strictly later and human-gated (#2193 §B step c).Refs #2193. Merge is yours, Roland.
🤖 Generated with Claude Code