- Implemented a 3-pass matching algorithm in the Reconciler to handle ambiguous paths, ensuring accurate reconciliation of instances with duplicate names.
- Added default property caching and refined property comparison logic for better instance matching.
- Introduced recursive change-count matching as a tiebreaker for ambiguous results.
- Refactored equality checks and path handling for robustness with duplicate-named siblings.
- Updated descendant search functions for `WeakDom` and `RojoTree` to support the new matching algorithm.
- Exposed `snapshot`, `syncback`, and `variant_eq` modules publicly, along with integration tests for the matching algorithm.
- Enhanced deduplication processes and improved code readability.
These changes significantly improve the reconciliation process, addressing previous ambiguities and enhancing overall performance.
- Implemented two-way sync for Ref properties using `Rojo_Ref_*` attributes, enabling detection of changes in Studio and path-based encoding.
- Developed `RefPathIndex` for efficient resolution of attributes during forward sync, including handling ambiguous paths.
- Enhanced `ChangeProcessor` and `ChangeBatcher` to manage Ref property changes during live sync sessions.
- Introduced `InstanceMap:getIdByInstance` for reverse lookups and added comprehensive integration tests for various edge cases.
- Optimized CI scripts for improved parallel execution of Rust tasks.
These updates significantly enhance the synchronization system's handling of Ref properties and improve overall performance.
- 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 <cursoragent@cursor.com>
- 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.
- Overhaul filename handling with slugify for robust round-trip fidelity
- Refactor syncback instance processing, metadata, and deduplication logic
- Add option to forget prior info for place in reminder notification
- Improve sourcemap path handling with pathdiff
- Use rbx_cookie for Roblox auth cookie retrieval
- Add VS Code extension build steps to CI and release workflows
- Update rbx-dom and vscode-rojo submodules
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added new section for version 8.0.1 in CHANGELOG.md detailing enhancements to root install scripts, syncback management of .gitkeep files, and improvements to patch visualization and sync test reliability.
- Introduced a new release command documentation file to guide version bumping, changelog updates, and release tagging processes.
- Enhanced CHANGELOG with performance improvements and bug fixes for the 8.0.0 release.
- Updated submodule references for rbx-dom and vscode-rojo to their latest commits.
- Bumped version from 7.7.0-rc.2 to 8.0.0 across all relevant files.
- Updated repository links to reflect the new UserGeneratedLLC branding.
- Enhanced CHANGELOG with new features and fixes for the 8.0.0 release.
- Updated plugin version and internal references to align with the new branding.
- Modified dependencies in Cargo files to use the latest version of Atlas.
- Improved syncback performance by parallelizing filesystem writes using rayon, allowing file writes and removals to run concurrently while maintaining sequential directory operations.
- Implemented retry logic for file and directory operations on Windows to handle transient errors, enhancing reliability during syncback processes.
- Add "Always" option to confirmationBehavior setting
- Route WebSocket patches through the confirmation callback
- Fix UI not transitioning back to Connected after confirming ongoing patches
- Fix DomLabel Flipper motor cleanup on unmount to prevent errors
Replaces `serde_json` parsing with `jsonc-parser` throughout the
codebase, enabling support for **comments** and **trailing commas** in
all JSON files including `.project.json`, `.model.json`, and
`.meta.json` files.
MSRV bumps from `1.83.0` to `1.88.0` in order to
use the jsonc_parser dependency.