Commit graph

1946 commits

Author SHA1 Message Date
Joe
61c21bc168 Remove atlas reference from rokit.toml as it is no longer needed for toolchain management. Update release documentation to reflect this change and clarify that rokit.toml should not self-reference unreleased versions. 2026-02-08 17:00:01 -06:00
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