Commit graph

1745 commits

Author SHA1 Message Date
Joe
82e480719e Update CHANGELOG for version 8.0.1 and add release command documentation
- 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.
2026-02-08 16:38:54 -06:00
Joe
ae25a27633 Bump version to 8.0.1
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 16:33:30 -06:00
Joe
b2e03f07c7 Add vscode-rojo installation script execution to install scripts
- Updated `install.ps1` to include execution of the vscode-rojo installation script.
- Modified `install.sh` to change directory and run the vscode-rojo installation script, ensuring proper setup during installation.
2026-02-08 16:30:55 -06:00
Joe
223e4f6e47 Remove unnecessary .gitkeep files from various snapshot tests to streamline directory management and ensure proper cleanup in syncback functionality. 2026-02-08 16:27:04 -06:00
Joe
7172ae2d09 Enhance syncback functionality to manage .gitkeep files
- Updated the syncback loop to skip hidden files/directories, with an exception for .gitkeep, which is necessary for directory management.
- Added comprehensive tests to ensure proper cleanup of stale .gitkeep files in various scenarios, including non-empty directories and init-style projects.
2026-02-08 16:23:41 -06:00
Joe
9b832c4637 Complete implementation of Git-style change metadata and diff utilities
- Finalized the `ChangeMetadata` module to compute structured change metadata, replacing inline calculations in `PatchTree`.
- Introduced `DiffUtil` for accurate line difference calculations using the Myers algorithm, ensuring consistency with Git's behavior.
- Updated `DomLabel` to display git-style change indicators, including added and removed line counts, with hover tooltips for detailed information.
- Comprehensive tests for `DiffUtil` have been added to validate functionality across various scenarios.
- Removed the obsolete `WhitespaceUtil` as its functionality is now integrated into the new modules.
2026-02-08 16:12:40 -06:00
Joe
6deafe2650 Implement Git-style change metadata module
- Introduced a new `ChangeMetadata` module to centralize change calculations, replacing the ad-hoc logic in `PatchTree`.
- Created `DiffUtil` to utilize the Myers diff algorithm for accurate line difference counts, aligning with Git's behavior.
- Updated `DomLabel` to display changes in a git-style format, including added and removed line counts.
- Added comprehensive tests for `DiffUtil` to ensure reliability and accuracy in various scenarios.
2026-02-08 14:39:33 -06:00
Joe
250c7db84a Add macOS compatibility check for extreme filesystem rename tests
- Updated the `extreme_filesystem_5_file_rename_chains` test to ignore execution on macOS due to kqueue limitations with high rename pressure.
- Added documentation to clarify the reason for the macOS-specific ignore condition, ensuring better understanding of the test's behavior across different platforms.
2026-02-08 12:13:04 -06:00
Joe
6e323660e0 Update snapshot files to standardize messageCursor redaction
- Replaced specific messageCursor values with a placeholder "[message-cursor]" across multiple snapshot files to ensure consistency in test outputs.
- Adjusted the test utility to add redaction for messageCursor, addressing non-deterministic behavior in macOS environments.
2026-02-08 12:07:20 -06:00
Joe
e934912b4a Add polling functions for file existence and content checks in two-way sync tests
- Introduced `poll_file_exists`, `poll_not_exists`, and `poll_file_contains` functions to enhance the reliability of assertions in asynchronous file operations.
- Replaced direct assertions with polling functions in various test cases to ensure proper synchronization with filesystem changes.
- Improved error handling and timeout messages for better debugging during test failures.
2026-02-08 11:55:10 -06:00
Joe
dd57bad374 Refactor subtree highlight management in DomLabel and PatchVisualizer components
- Simplified the handling of subtree highlights by replacing the previous state management with a binding approach.
- Updated the SelectionOption component to derive hover effects directly from the new binding.
- Removed unnecessary props related to subtree highlighting from SelectionRadio, streamlining the component structure.
2026-02-07 19:15:53 -06:00
Joe
76d4e6aff0 Refactor subtree highlight handling in PatchVisualizer and DomLabel components
- Replaced subtreeHighlightBinding with subtreeHighlightInfo for improved clarity and functionality.
- Updated transparency logic in SelectionOption to utilize the new subtree highlight structure.
- Adjusted state management in PatchVisualizer to accommodate the new highlight callback mechanism.
2026-02-07 18:48:41 -06:00
Joe
7a40839f91 Fix internal reference in ServeSession to reflect Atlas sync operation 2026-02-07 14:14:43 -06:00
Joe
005c4886f1 Update vscode-rojo submodule to latest commit 029cd184 2026-02-07 14:02:48 -06:00
Joe
2456d16d3c Update README to reflect new GitHub repository link 2026-02-07 13:58:59 -06:00
Joe
812827b460 Update CHANGELOG for version 8.0.0 release and update submodule references
- 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.
2026-02-07 13:55:53 -06:00
Joe
3cb9e16889 Update Atlas to version 8.0.0
- 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.
2026-02-07 13:52:45 -06:00
Joe
50b9e18514 Refactor and rebrand Rojo to Atlas
- Renamed the project from Rojo to Atlas, updating all relevant files, scripts, and documentation to reflect the new branding.
- Bumped version to 7.7.0-rc.2 and updated protocol version from 5 to 6.
- Modified installation scripts and CI workflows to use the new binary name and paths.
- Adjusted plugin settings and internal identifiers to prevent conflicts with the original Rojo.
- Enhanced session management and API response handling to support the new server fork identifier.
- Updated project templates and README files to guide users on using Atlas.
2026-02-07 13:21:52 -06:00
Joe
0e263789b0 Enhance session management and UI state handling
- Added checks to handle session disconnections during confirmation in ServeSession, preventing further actions on a disconnected session.
- Updated App:startSession to manage UI state in one-shot sync mode, ensuring a loading state is displayed instead of a connected page.
- Implemented safety measures in App:endSession to reset UI state if the session reference is cleared, addressing potential race conditions.
2026-02-07 12:41:13 -06:00
Joe
a81096c01d Update vscode-rojo submodule to latest commit 661301ed 2026-02-07 12:30:37 -06:00
Joe
3bd2b07aca Update vscode-rojo submodule to latest commit 58cff16c 2026-02-07 12:08:43 -06:00
Joe
42ed851027 Update vscode-rojo submodule to latest commit 2026-02-07 12:01:40 -06:00
Joe
edfe15a143 Add vscode-rojo submodule and update schemas for Atlas rebranding
- Added the vscode-rojo submodule to the project, linking to the UserGeneratedLLC repository.
- Created a new plan for syncing vscode-rojo schemas, detailing updates to project, meta, and model schemas to align with the Rojo fork and rebrand as "Atlas".
- Enhanced the Theme and DomLabel components to support subtree highlighting, improving user interaction in the PatchVisualizer.
- Updated the PatchVisualizer to manage subtree highlight state and ancestor IDs for better visual feedback during selection.
2026-02-07 11:56:14 -06:00
Joe
aeec3a962b Ignore certain tests on macOS due to kqueue event overload
- Added `#[cfg_attr(target_os = "macos", ignore)]` to three tests to prevent them from running on macOS, where rapid rename operations can overwhelm the ChangeProcessor.
- This change aims to improve test reliability across different operating systems.
2026-02-06 23:26:41 -06:00
Joe
733dc271b8 Update CI documentation for Roblox Plugin Tests
- Revised the section on running Roblox Plugin Tests to include instructions for both Windows and non-Windows environments, enhancing accessibility for users.
- Removed the requirement for Roblox Studio in the documentation, streamlining the testing process.
2026-02-06 23:01:42 -06:00
Joe
2892d989f8 Add cookie header support for Roblox API requests in CloneCommand and StudioCommand
- Introduced a cookie header to the API requests in both `fetch_experience_name` and `get_universe_id` functions, allowing for authenticated requests to the Roblox API.
- Updated the request handling to conditionally include the cookie if available, enhancing the functionality of the commands when interacting with the API.
2026-02-06 23:00:39 -06:00
Joe
8dc050895a Enhance experience name sanitization in CloneCommand
- Updated the `sanitize_name` function to remove noise words, specifically "testing", from experience names.
- Added unit tests to verify the removal of "testing" in various input scenarios, ensuring consistent sanitization of folder names.
2026-02-06 22:52:31 -06:00
Joe
113b8b8dfe Improve logging in CloneCommand and InitCommand during git operations
- Added informational logging for staging and committing changes in both `CloneCommand` and `InitCommand`, enhancing visibility into the git process during project initialization and cloning.
2026-02-06 22:46:54 -06:00
Joe
b2c8f2848b Enhance CI pipeline documentation and improve git command handling
- Updated the `/ci` command documentation to clarify the execution steps for the CI pipeline, specifically regarding the rbx-dom section.
- Modified git command invocations in `CloneCommand` and `InitCommand` to include the `--no-verify` flag, allowing commits to bypass pre-commit hooks.
- Added null input handling for git commands in `CloneCommand`, `InitCommand`, and `Syncback` to prevent blocking on stdin.
2026-02-06 22:43:54 -06:00
Joe
1ad54fb0c4 Enhance CI pipeline documentation for Rojo and rbx-dom
- Updated the `/ci` command documentation to include detailed steps for running the CI pipeline for both Rojo and rbx-dom.
- Added specific instructions for auto-fixing formatting, linting, building, and testing within the rbx-dom submodule.
- Improved reporting structure to summarize results for both Rojo and rbx-dom, ensuring clarity on formatting, linting, and test outcomes.
2026-02-06 22:36:50 -06:00
Joe
1f2b630506 upgrade again 2026-02-06 22:31:22 -06:00
Joe
cef9a5a3b3 Update rbx-dom submodule: fix clippy needless borrows in rbx_types
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 22:29:58 -06:00
Joe
4f3e66bec9 Add tests for PatchSet and ServeSession functionality
- Introduced comprehensive tests for the `PatchSet` module, covering methods such as `hasRemoves`, `hasAdditions`, `hasUpdates`, and various ID and instance checks.
- Added a new test suite for `ServeSession`, focusing on WebSocket message handling and confirmation behavior, ensuring correct merging and application of patches.
- Implemented edge case tests in `ChangeBatcher` to verify data integrity during rapid changes and instance removals.
- Enhanced `applyPatch` tests to handle scenarios involving missing instances and ignored class names, ensuring robust patch application logic.
2026-02-06 22:23:14 -06:00
Joe
a2c8a583a6 Refactor StdBackend error handling for file watcher reliability
- Updated the `new` method in `StdBackend` to improve error handling for file watching.
- Introduced specific handling for `WatcherCriticalError::RescanRequired`, allowing the watcher to recover from rapid changes while logging a warning.
- Ensured that all other critical errors will terminate the process, maintaining reliability in file watching operations.
2026-02-06 19:51:46 -06:00
Joe
fa5393121e Enhance CloneCommand and Syncback functionality
- Added a check in `CloneCommand` to prevent cloning into an existing directory, providing a clearer error message for users.
- Updated the `SyncbackCommand` to support a configurable working directory for resolving relative paths, improving flexibility in project structure.
- Refactored the commit message in the `CloneCommand` to accurately reflect the syncback operation.
- Improved path resolution logic in `SyncbackCommand` to handle both absolute and relative paths more effectively.
2026-02-06 19:29:37 -06:00
Joe
5442c02f67 Enhance redaction handling and update snapshot references
- Added support for redacting tagged values in the `RedactionMap` implementation, ensuring that nested tagged values are processed correctly.
- Updated multiple snapshot files to replace specific reference IDs with deterministic `id-N` values, improving consistency across tests and snapshots.
- Refactored internment logic in `internable.rs` to include variant references, ensuring proper redaction of property values in snapshots.
2026-02-06 19:20:16 -06:00
Joe
2978dee70d Add CloneCommand for initializing and syncing Rojo projects
- Introduced a new `CloneCommand` struct to facilitate the creation of Rojo projects from Roblox places, combining initialization and syncing in a single command.
- Implemented functionality to fetch experience names from the Roblox API and sanitize them for valid folder names.
- Added command-line options for specifying place ID, project path, project kind, and options to skip git initialization and cursor rules.
- Updated the CLI module to include the new `CloneCommand` and handle its execution within the command structure.
- Included tests for the sanitization function to ensure proper handling of various input cases.
2026-02-06 19:08:42 -06:00
Joe
71ea25fe0e Upgrade dependencies and refactor serialization in build.rs
- Updated `bincode` to version 2.0.1, modifying serialization calls to use the new API with `serde` support.
- Added new dependencies in `Cargo.lock`, including `alloca`, `atomic-waker`, and `aws-lc-rs`, ensuring compatibility with the latest features.
- Refactored file creation and serialization logic in `build.rs` for improved clarity and performance.
- Updated various dependencies in `Cargo.toml` to their latest versions, enhancing overall project stability and functionality.
2026-02-06 18:57:29 -06:00
Joe
0a4496a6c9 Update serde dependency in Cargo.toml for memofs
- Moved the `serde` dependency under the macOS-specific target configuration to ensure proper conditional inclusion based on the operating system.
- This change enhances the clarity of dependency management and maintains compatibility across different platforms.
2026-02-06 18:28:31 -06:00
Joe
8abb16e4a5 Update dependencies in Cargo.lock and Cargo.toml
- Bumped versions for several dependencies, including `anyhow`, `async-compression`, `jiff`, `memchr`, `pest`, and `time`, ensuring compatibility with the latest features and fixes.
- Adjusted the `notify` dependency in `memofs` to conditionally include platform-specific features for macOS, enhancing cross-platform support.
- Updated checksums in `Cargo.lock` to reflect the new versions, maintaining integrity and security of the dependency tree.
2026-02-06 18:22:50 -06:00
Joe
cf33a93640 Refactor StdBackend to improve file watcher reliability
- Updated the `StdBackend` to utilize `notify::RecommendedWatcher` instead of a platform-specific watcher type, enhancing cross-platform event delivery.
- Simplified the debouncer initialization by removing platform-specific configurations, streamlining the code for better maintainability.
- Improved documentation to reflect changes in the watcher implementation and clarify the debouncing mechanism.
2026-02-06 14:17:14 -06:00
Joe
0605d5cfee Refactor file watcher and path suppression handling for improved reliability
- Updated the `StdBackend` to use a platform-specific watcher type, enhancing event delivery on macOS by utilizing `PollWatcher`.
- Refactored the path suppression logic in `JobThreadContext` to handle any VFS event type, improving the accuracy of event processing during renames and writes.
- Enhanced documentation to clarify the changes in event handling and suppression mechanisms, contributing to better maintainability and understanding of the code.
2026-02-06 13:58:59 -06:00
Joe
4ee1e79a90 Refactor FSEvents handling in serve_util.rs for improved reliability
- Removed unnecessary sleep duration for FSEvents on macOS, reducing it from 500ms to 100ms to enhance responsiveness while still allowing time for event processing.
- Updated comments to clarify the rationale behind the timing adjustments and noted the need for a more robust solution in the future.
2026-02-06 13:10:00 -06:00
Joe
67537070db Refactor path suppression handling in ChangeProcessor and ApiService
- Updated the `suppressed_paths` structure in `ChangeProcessor` and `ApiService` to store counts for both remove and create/write events, enhancing the accuracy of event suppression.
- Refactored methods for suppressing and unsuppressing paths to accommodate the new structure, ensuring that the system correctly manages VFS events based on the type of operation.
- Improved documentation and comments to clarify the purpose and behavior of the suppression logic, contributing to better maintainability and understanding of the code.
2026-02-06 13:01:07 -06:00
Joe
2336671292 Refactor unused imports in studio.rs and fs_snapshot.rs for cleaner code
- Removed unnecessary imports from `studio.rs` and `fs_snapshot.rs`, streamlining the code and improving readability.
- This cleanup enhances maintainability by reducing clutter and focusing on essential dependencies.
2026-02-06 12:35:10 -06:00
Joe
84771840e1 Refactor port number generation in tests for improved reliability
- Replaced the static port number generation with a method that binds a temporary TcpListener to an ephemeral port assigned by the OS, enhancing the reliability of port allocation during tests.
- Updated documentation to clarify the new approach for obtaining a free port, ensuring better understanding and maintainability of the test code.
2026-02-06 12:24:50 -06:00
Joe
acb3b18fa1 Refactor test code for consistency and readability
- Streamlined multiple test functions by consolidating calls to `send_update_no_wait` and `get_format_transitions_instance` into single lines, enhancing code clarity.
- Improved consistency in handling session and instance IDs across various rename scenarios, contributing to better maintainability of the test suite.
2026-02-06 12:24:34 -06:00
Joe
4bfb52d299 Refactor rename handling in two-way sync tests for improved stability
- Updated multiple test functions to retrieve session IDs and instance IDs before loops, enhancing the stability of rename operations during rapid updates.
- Removed redundant calls to fetch instance information within loops, streamlining the code and reducing potential race conditions.
- Ensured consistent handling of session IDs across various rename scenarios, contributing to more reliable test outcomes in high-load situations.
2026-02-06 12:18:50 -06:00
Joe
a6fb256192 Update extreme_no_wait_directory_all_three test to reduce iterations from 20 to 15
- Adjusted the test case `extreme_no_wait_directory_all_three_20x` to `extreme_no_wait_directory_all_three_15x`, reflecting a change in the number of iterations to better manage system load without timing out.
- Updated assertions and file checks to align with the new iteration count, ensuring the test remains valid and accurately reflects the expected outcomes for the reduced load scenario.
2026-02-06 12:01:20 -06:00
Joe
dd3466b225 Implement unsuppress_path method in JobThreadContext for better VFS event handling
- Added a new `unsuppress_path` method to the `JobThreadContext` to remove suppressions on paths when filesystem operations fail, ensuring that future events for those paths are processed correctly.
- Updated various sections of `change_processor.rs` to call `unsuppress_path` in relevant error handling scenarios during rename and write operations, improving the accuracy of event processing.
- Enhanced the logic for managing suppressed paths, contributing to a more robust change processing mechanism in the VFS.
2026-02-06 11:23:31 -06:00