From 7f89d4ce29c5306362810d53dc4e62910f24902f Mon Sep 17 00:00:00 2001 From: Joe Date: Wed, 11 Feb 2026 20:41:29 -0600 Subject: [PATCH] Enhance tree synchronization and testing capabilities - Fixed tree drift issues caused by echo suppression, ensuring new-instance file writes do not suppress watcher events. - Implemented periodic tree reconciliation in the ChangeProcessor to recover from lost OS file notifications. - Added a new API endpoint `/api/validate-tree` for verifying tree-filesystem consistency. - Introduced `assert_tree_fresh()` test helper and enhanced tree freshness assertions in watcher tests. - Added VFS staleness tests and a chaos fuzzer stress test to improve robustness. - Tightened echo suppression test assertions for more precise validation. - Exposed `WatcherCriticalError` channel for better event handling in the ChangeProcessor. These changes significantly improve the reliability of the VFS and enhance testing coverage for tree synchronization scenarios. --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd828ab0..d6167459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,14 @@ Making a new release? Simply add the new header with the version and date undern ## Unreleased +* Fix tree drift caused by echo suppression eating VFS events for newly added instances. New-instance file writes no longer suppress watcher events, allowing the tree to pick them up correctly. +* Add periodic tree reconciliation in the ChangeProcessor to recover from lost OS file notification events (Windows `ReadDirectoryChangesW` buffer overflow). Runs automatically after event bursts settle. +* Add `GET /api/validate-tree` endpoint for test infrastructure to verify tree-filesystem consistency. +* Add `assert_tree_fresh()` test helper and tree freshness assertions to all watcher and echo suppression tests. +* Add VFS staleness tests (bulk changes, post-API external edit, rapid delete/recreate, directory restructure) and a chaos fuzzer stress test. +* Tighten echo suppression test assertions from lenient bounds to precise expected values. +* Expose `WatcherCriticalError` channel from VFS to ChangeProcessor for `RescanRequired` event handling. + ## [8.1.0] (February 11th, 2026) * Overhaul filename handling: replace path encoding system with a slugify approach for robust round-trip fidelity between Roblox instances and the filesystem.