diff --git a/plugin/src/Reconciler/diff.lua b/plugin/src/Reconciler/diff.lua index 48c3a57c..bb3409f2 100644 --- a/plugin/src/Reconciler/diff.lua +++ b/plugin/src/Reconciler/diff.lua @@ -35,11 +35,17 @@ local SCRIPT_CLASS_NAMES = { } local function shouldDeleteChild(virtualInstance, childInstance) - -- If the parent allows deleting unknown instances, always allow if shouldDeleteUnknownInstances(virtualInstance) then return true end + -- When the parent has glob-ignored children, suppress ALL deletions + -- (including scripts). This differs from scripts-only mode where + -- scripts are still eligible for deletion. + if virtualInstance.Metadata and virtualInstance.Metadata.globIgnoredChildren then + return false + end + -- In scripts-only mode (where parent has ignoreUnknownInstances: true), -- we still want to allow deletion of scripts. This ensures deleted -- script files show up in the sync diff. diff --git a/plugin/src/Reconciler/diff.spec.lua b/plugin/src/Reconciler/diff.spec.lua index 163606c7..caa969cc 100644 --- a/plugin/src/Reconciler/diff.spec.lua +++ b/plugin/src/Reconciler/diff.spec.lua @@ -244,6 +244,64 @@ return function() assert(isEmpty(patch.removed)) end) + it( + "should still remove unknown scripts when ignoreUnknownInstances is true but globIgnoredChildren is false", + function() + local knownInstances = InstanceMap.new() + local virtualInstances = { + ROOT = { + ClassName = "Folder", + Name = "Folder", + Properties = {}, + Children = {}, + Metadata = { + ignoreUnknownInstances = true, + globIgnoredChildren = false, + }, + }, + } + + local rootInstance = Instance.new("Folder") + local unknownScript = Instance.new("ModuleScript") + unknownScript.Parent = rootInstance + knownInstances:insert("ROOT", rootInstance) + + local ok, patch = diff(knownInstances, virtualInstances, "ROOT") + + assert(ok, tostring(patch)) + + expect(#patch.removed).to.equal(1) + expect(patch.removed[1]).to.equal(unknownScript) + end + ) + + it("should NOT remove unknown scripts when globIgnoredChildren is true", function() + local knownInstances = InstanceMap.new() + local virtualInstances = { + ROOT = { + ClassName = "Folder", + Name = "Folder", + Properties = {}, + Children = {}, + Metadata = { + ignoreUnknownInstances = true, + globIgnoredChildren = true, + }, + }, + } + + local rootInstance = Instance.new("Folder") + local unknownScript = Instance.new("ModuleScript") + unknownScript.Parent = rootInstance + knownInstances:insert("ROOT", rootInstance) + + local ok, patch = diff(knownInstances, virtualInstances, "ROOT") + + assert(ok, tostring(patch)) + + assert(isEmpty(patch.removed)) + end) + it("should generate a patch with an added child", function() local knownInstances = InstanceMap.new() local virtualInstances = { diff --git a/plugin/src/Types.lua b/plugin/src/Types.lua index 6b00104e..6838e931 100644 --- a/plugin/src/Types.lua +++ b/plugin/src/Types.lua @@ -9,6 +9,7 @@ local ApiValue = t.keys(t.string) local ApiInstanceMetadata = t.interface({ ignoreUnknownInstances = t.optional(t.boolean), + globIgnoredChildren = t.optional(t.boolean), }) local ApiInstance = t.interface({ diff --git a/src/serve_session.rs b/src/serve_session.rs index 6b0efe7b..f3235b1c 100644 --- a/src/serve_session.rs +++ b/src/serve_session.rs @@ -371,14 +371,7 @@ impl ServeSession { let patch_start = Instant::now(); let project_folder = root_project.folder_location().to_path_buf(); - let watch_ignore_rules: Vec = root_project - .glob_ignore_paths - .iter() - .map(|glob| PathIgnoreRule { - glob: glob.clone(), - base_path: root_project.folder_location().to_path_buf(), - }) - .collect(); + let watch_ignore_rules = root_project.path_ignore_rules(); std::thread::scope(|s| { s.spawn(|| { use walkdir::WalkDir; diff --git a/src/snapshot/metadata.rs b/src/snapshot/metadata.rs index 9fb96cce..406926c4 100644 --- a/src/snapshot/metadata.rs +++ b/src/snapshot/metadata.rs @@ -21,6 +21,11 @@ pub struct InstanceMetadata { /// manage. pub ignore_unknown_instances: bool, + /// Whether this directory had children excluded by `globIgnorePaths`. + /// Distinguishes glob-ignored directories (suppress ALL deletions including + /// scripts) from scripts-only mode (suppress non-script deletions only). + pub glob_ignored_children: bool, + /// If a change occurs to this instance, the instigating source is what /// should be run through the snapshot functions to regenerate it. #[serde(skip_serializing_if = "Option::is_none")] @@ -79,6 +84,7 @@ impl InstanceMetadata { pub fn new() -> Self { Self { ignore_unknown_instances: false, + glob_ignored_children: false, instigating_source: None, relevant_paths: Vec::new(), context: InstanceContext::default(), @@ -96,6 +102,13 @@ impl InstanceMetadata { } } + pub fn glob_ignored_children(self, glob_ignored_children: bool) -> Self { + Self { + glob_ignored_children, + ..self + } + } + pub fn instigating_source(self, instigating_source: impl Into) -> Self { Self { instigating_source: Some(instigating_source.into()), diff --git a/src/snapshot/patch_compute.rs b/src/snapshot/patch_compute.rs index 1bc10f5b..ae3edc6f 100644 --- a/src/snapshot/patch_compute.rs +++ b/src/snapshot/patch_compute.rs @@ -110,6 +110,8 @@ fn compute_patch_set_internal( .get_instance(id) .expect("Instance did not exist in tree"); + let ignore_unknown = snapshot.metadata.ignore_unknown_instances; + compute_property_patches( &context.snapshot_specified_ids, &mut snapshot, @@ -117,7 +119,15 @@ fn compute_patch_set_internal( patch_set, tree, ); - compute_children_patches(context, &mut snapshot, tree, id, patch_set, session); + compute_children_patches( + context, + &mut snapshot, + tree, + id, + patch_set, + session, + ignore_unknown, + ); } fn compute_property_patches( @@ -267,6 +277,7 @@ fn compute_children_patches( id: Ref, patch_set: &mut PatchSet, session: &super::matching::MatchingSession, + ignore_unknown_instances: bool, ) { use super::matching::match_forward; @@ -310,9 +321,13 @@ fn compute_children_patches( }); } - // Unmatched tree children: instances to be removed. - for tree_child_id in match_result.unmatched_tree { - patch_set.removed_instances.push(tree_child_id); + // Unmatched tree children: instances to be removed, unless the parent + // snapshot says to ignore unknown instances (e.g. $ignoreUnknownInstances + // or directories with glob-ignored children). + if !ignore_unknown_instances { + for tree_child_id in match_result.unmatched_tree { + patch_set.removed_instances.push(tree_child_id); + } } } @@ -426,6 +441,96 @@ mod test { assert_eq!(patch_set, expected_patch_set); } + #[test] + fn ignore_unknown_instances_suppresses_removals() { + use super::super::patch_apply::apply_patch_set; + + let mut tree = RojoTree::new(InstanceSnapshot::new().name("root").class_name("Folder")); + let root_id = tree.get_root_id(); + + // Add two children (A and B) to the tree via a patch. + let add_patch = PatchSet { + added_instances: vec![ + PatchAdd { + parent_id: root_id, + instance: InstanceSnapshot::new().name("A").class_name("Folder"), + }, + PatchAdd { + parent_id: root_id, + instance: InstanceSnapshot::new().name("B").class_name("Folder"), + }, + ], + updated_instances: Vec::new(), + removed_instances: Vec::new(), + stage_ids: std::collections::HashSet::new(), + stage_paths: Vec::new(), + }; + apply_patch_set(&mut tree, add_patch); + + // Snapshot only has child A, with ignore_unknown_instances = true. + // Child B is "unknown" and should NOT be removed. + let snapshot = InstanceSnapshot { + snapshot_id: Ref::none(), + metadata: super::super::InstanceMetadata::new().ignore_unknown_instances(true), + properties: UstrMap::new(), + name: Cow::Borrowed("root"), + class_name: ustr("Folder"), + children: vec![InstanceSnapshot::new().name("A").class_name("Folder")], + }; + + let patch_set = compute_patch_set(Some(snapshot), &tree, root_id); + + assert!( + patch_set.removed_instances.is_empty(), + "Unmatched tree children should NOT be removed when ignore_unknown_instances is true" + ); + } + + #[test] + fn default_removes_unmatched_children() { + use super::super::patch_apply::apply_patch_set; + + let mut tree = RojoTree::new(InstanceSnapshot::new().name("root").class_name("Folder")); + let root_id = tree.get_root_id(); + + let add_patch = PatchSet { + added_instances: vec![ + PatchAdd { + parent_id: root_id, + instance: InstanceSnapshot::new().name("A").class_name("Folder"), + }, + PatchAdd { + parent_id: root_id, + instance: InstanceSnapshot::new().name("B").class_name("Folder"), + }, + ], + updated_instances: Vec::new(), + removed_instances: Vec::new(), + stage_ids: std::collections::HashSet::new(), + stage_paths: Vec::new(), + }; + apply_patch_set(&mut tree, add_patch); + + // Snapshot only has child A, with default metadata (ignore_unknown_instances = false). + // Child B should be removed. + let snapshot = InstanceSnapshot { + snapshot_id: Ref::none(), + metadata: Default::default(), + properties: UstrMap::new(), + name: Cow::Borrowed("root"), + class_name: ustr("Folder"), + children: vec![InstanceSnapshot::new().name("A").class_name("Folder")], + }; + + let patch_set = compute_patch_set(Some(snapshot), &tree, root_id); + + assert_eq!( + patch_set.removed_instances.len(), + 1, + "Unmatched tree children should be removed when ignore_unknown_instances is false" + ); + } + /// The same as rewrite_ref_existing_instance_update, except that the /// property is added in a new instance instead of modifying an existing /// one. diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap index 9b3650fa..00465ae9 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__add_property.snap @@ -10,6 +10,7 @@ properties: "!String": Value of Foo metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap index afbcc2ee..a0adbaa0 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_after_patch.snap @@ -8,6 +8,7 @@ class_name: ROOT properties: {} metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap index 31af7868..2ad5a617 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__remove_property_initial.snap @@ -10,6 +10,7 @@ properties: "!String": Should be removed metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap index ecb3f847..38a3be7e 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__apply__set_name_and_class_name.snap @@ -8,6 +8,7 @@ class_name: Folder properties: {} metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap b/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap index 1bd818f3..d85b6f00 100644 --- a/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap +++ b/src/snapshot/tests/snapshots/librojo__snapshot__tests__compute__add_child.snap @@ -9,6 +9,7 @@ added_instances: snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot_middleware/dir.rs b/src/snapshot_middleware/dir.rs index 32e49188..1b2b0833 100644 --- a/src/snapshot_middleware/dir.rs +++ b/src/snapshot_middleware/dir.rs @@ -118,7 +118,8 @@ pub fn snapshot_dir_no_meta( .instigating_source(path) .relevant_paths(relevant_paths) .context(context) - .ignore_unknown_instances(any_child_glob_ignored), + .ignore_unknown_instances(any_child_glob_ignored) + .glob_ignored_children(any_child_glob_ignored), ); Ok(Some(snapshot)) @@ -602,6 +603,10 @@ mod test { snap.metadata.ignore_unknown_instances, "Directory with glob-ignored children should have ignore_unknown_instances = true" ); + assert!( + snap.metadata.glob_ignored_children, + "Directory with glob-ignored children should have glob_ignored_children = true" + ); assert_eq!( snap.children.len(), 1, @@ -636,6 +641,10 @@ mod test { !snap.metadata.ignore_unknown_instances, "Directory without glob-ignored children should have ignore_unknown_instances = false" ); + assert!( + !snap.metadata.glob_ignored_children, + "Directory without glob-ignored children should have glob_ignored_children = false" + ); assert_eq!(snap.children.len(), 2); } } diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap index 2ec17a3a..9732375d 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.csv relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init.snap index a28c445a..b605e1f9 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /root/init.csv relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init_with_meta.snap index ada8a161..d44b69ae 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_init_with_meta.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /root/init.csv relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap index 196e430d..8210ef3e 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__csv__test__csv_with_meta.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.csv relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap index 23ecb41c..98d6c620 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__empty_folder.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap index 0d7dddbf..478432f7 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__dir__test__folder_in_folder.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo relevant_paths: @@ -30,6 +31,7 @@ children: - snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo/Child relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap index c2ca07dc..82b4da39 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__instance_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__with_metadata.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__with_metadata.snap index 396cc181..3c140e36 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__with_metadata.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json__test__with_metadata.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap index 9690c7ec..6a49b6a0 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.model.json5 relevant_paths: @@ -22,6 +23,7 @@ children: - snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap index 9690c7ec..6a49b6a0 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__json_model__test__model_from_vfs_legacy.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.model.json5 relevant_paths: @@ -22,6 +23,7 @@ children: - snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: [] context: {} specified_id: ~ diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap index ea4d0102..7f3c1684 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__client_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.client.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap index e4978c2b..64c753f2 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /root/init.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs_with_meta.snap index da906c76..036c5810 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__init_module_from_vfs_with_meta.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /root/init.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__legacy_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__legacy_from_vfs.snap index b609a3a3..b4d03db4 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__legacy_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__legacy_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.legacy.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__local_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__local_from_vfs.snap index a8c84cba..9ad223f1 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__local_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__local_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.local.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap index 30a628f0..3494c1e7 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap index 50818283..932b52dc 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__module_with_meta.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__plugin_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__plugin_from_vfs.snap index daf0d5b5..660792d7 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__plugin_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__plugin_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.plugin.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_disabled.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_disabled.snap index ffa29e3c..62ccfcb3 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_disabled.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_disabled.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /bar.server.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap index 756c6567..f782f29b 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.server.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_with_meta.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_with_meta.snap index 78e84a4c..2c80b322 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_with_meta.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__lua__test__server_with_meta.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.server.luau relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__adjacent_read_json5.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__adjacent_read_json5.snap index f15c6ff5..1629f23d 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__adjacent_read_json5.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__adjacent_read_json5.snap @@ -5,6 +5,7 @@ expression: snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: - /foo/bar.meta.json5 context: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__directory_read_json5.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__directory_read_json5.snap index 5f7ab6cd..ccbefe47 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__directory_read_json5.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__meta_file__test__directory_read_json5.snap @@ -5,6 +5,7 @@ expression: snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false relevant_paths: - /foo/init.meta.json5 context: {} diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__no_name_project.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__no_name_project.snap index 0e0a7fc5..89fc7b18 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__no_name_project.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__no_name_project.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo/default.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap index 07a7aca4..06d0db59 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_from_direct_file.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo/hello.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap index b19c2181..0cbefdc1 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_path_property_overrides.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo/default.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap index 2df85f3f..13f44928 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_children.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.project.json5 relevant_paths: @@ -20,6 +21,7 @@ children: - snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: ProjectNode: path: /foo.project.json5 diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap index 901bf4a4..6e9fa0fa 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo/default.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap index c93e6832..e20d4ed4 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_project_with_children.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo/default.project.json5 relevant_paths: @@ -21,6 +22,7 @@ children: - snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: ProjectNode: path: /foo/other.project.json5 diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap index 8dc96da2..6e1b642c 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_path_to_txt.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo/default.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap index 88599384..74d6cb8a 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_resolved_properties.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap index a953d6be..97c9a39d 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__project__test__project_with_unresolved_properties.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: true + glob_ignored_children: false instigating_source: Path: /foo.project.json5 relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap index cbee1125..0dbe5a3a 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__instance_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.toml relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__with_metadata.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__with_metadata.snap index 46f5eb5e..eed2365a 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__with_metadata.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__toml__test__with_metadata.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: foo.toml relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap index f89b5009..20834287 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__instance_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.txt relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__with_metadata.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__with_metadata.snap index aefd549f..e24bf534 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__with_metadata.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__txt__test__with_metadata.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.txt relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__instance_from_vfs.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__instance_from_vfs.snap index f17cdf34..21749a63 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__instance_from_vfs.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__instance_from_vfs.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: /foo.yaml relevant_paths: diff --git a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__with_metadata.snap b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__with_metadata.snap index f54d3e7d..36d2ef28 100644 --- a/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__with_metadata.snap +++ b/src/snapshot_middleware/snapshots/librojo__snapshot_middleware__yaml__test__with_metadata.snap @@ -5,6 +5,7 @@ expression: instance_snapshot snapshot_id: "00000000000000000000000000000000" metadata: ignore_unknown_instances: false + glob_ignored_children: false instigating_source: Path: foo.yaml relevant_paths: