From 4c6de0d1743ac735ace79daa17a7acdfa7aa80f8 Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 12 Feb 2026 02:29:46 -0600 Subject: [PATCH] 8.2.0 - Fix tree drift from echo suppression eating VFS events for new instances - Add periodic tree reconciliation for lost OS watcher events - Add /api/validate-tree endpoint and WatcherCriticalError channel - VFS staleness tests, chaos fuzzer, and tree freshness assertions - Update protocol version to 6 Co-authored-by: Cursor --- CHANGELOG.md | 29 ++++++++++++++++++++--- Cargo.lock | 58 +++++++++++++++++++++++----------------------- Cargo.toml | 2 +- plugin/Version.txt | 2 +- 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6167459..a4386563 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,13 +31,36 @@ Making a new release? Simply add the new header with the version and date undern ## Unreleased +## [8.2.0] (February 12th, 2026) + * 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. +* Add VFS staleness tests, chaos fuzzer stress test, and tree freshness assertions across the connected mode test suite. +* Tighten echo suppression test assertions from lenient bounds to precise expected values. +* Update protocol version to 6. + +
+Full commit log + +- `d84b6a35` Merge pull request #1 from UserGeneratedLLC/vfs-patches +- `2e49763b` Update snapshot files and enhance VFS event handling +- `b1789a37` Refactor VFS event handling in ChangeProcessor +- `7f89d4ce` Enhance tree synchronization and testing capabilities +- `8462c06b` Enhance VFS initialization and error handling +- `ec7f9101` Refactor API file handling and improve echo suppression documentation +- `e2f515d8` Update dependencies and enhance VFS staleness testing +- `200c5ca2` Update protocol version to 6 and enhance API documentation +- `f798f3f5` Enhance connected mode test suite and introduce VFS staleness fixtures +- `316d7ea7` Update logging levels in Rojo plugin and enhance test plans +- `2cc17269` Add git configuration and update gitignore for project template +- `77b9c0e5` Update Luau LSP sourcemap file in VS Code settings +- `11d0e9d8` Update VS Code configuration and dependencies + +
+ +[8.2.0]: https://github.com/UserGeneratedLLC/rojo/releases/tag/v8.2.0 ## [8.1.0] (February 11th, 2026) diff --git a/Cargo.lock b/Cargo.lock index c2d39fb3..db2bcc04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -172,7 +172,7 @@ dependencies = [ [[package]] name = "atlas" -version = "8.1.0" +version = "8.2.0" dependencies = [ "anyhow", "backtrace", @@ -565,7 +565,7 @@ dependencies = [ "heck", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -904,7 +904,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -1141,7 +1141,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -1656,9 +1656,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jiff" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89a5b5e10d5a9ad6e5d1f4bd58225f655d6fe9767575a5e8ac5a6fe64e04495" +checksum = "c867c356cc096b33f4981825ab281ecba3db0acefe60329f044c1789d94c6543" dependencies = [ "jiff-static", "log", @@ -1669,13 +1669,13 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.19" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff7a39c8862fc1369215ccf0a8f12dd4598c7f6484704359f0351bd617034dbf" +checksum = "f7946b4325269738f270bb55b3c19ab5c5040525f83fd625259422a9d25d9be5" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -2125,7 +2125,7 @@ dependencies = [ "pest_meta", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -2253,7 +2253,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2 1.0.106", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -2303,7 +2303,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3007,7 +3007,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3234,7 +3234,7 @@ dependencies = [ "heck", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3256,9 +3256,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "6e614ed320ac28113fa64972c4262d5dbc89deacdfd00c34a3e4cea073243c12" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", @@ -3282,7 +3282,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3342,7 +3342,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3353,7 +3353,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3492,7 +3492,7 @@ checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -3972,7 +3972,7 @@ dependencies = [ "bumpalo", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", "wasm-bindgen-shared", ] @@ -4389,7 +4389,7 @@ dependencies = [ "heck", "indexmap", "prettyplease", - "syn 2.0.114", + "syn 2.0.115", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -4405,7 +4405,7 @@ dependencies = [ "prettyplease", "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -4504,7 +4504,7 @@ checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", "synstructure", ] @@ -4525,7 +4525,7 @@ checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] @@ -4545,7 +4545,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", "synstructure", ] @@ -4585,14 +4585,14 @@ checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2 1.0.106", "quote 1.0.44", - "syn 2.0.114", + "syn 2.0.115", ] [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index 892d2202..56f2b38d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "atlas" -version = "8.1.0" +version = "8.2.0" rust-version = "1.88" authors = [ "Lucien Greathouse ", diff --git a/plugin/Version.txt b/plugin/Version.txt index 8104cabd..fbb9ea12 100644 --- a/plugin/Version.txt +++ b/plugin/Version.txt @@ -1 +1 @@ -8.1.0 +8.2.0