- Updated the subproject commit reference for vscode-rojo.
- Introduced a new rokit.toml file with dependencies for atlas, selene, and stylua.
- Refactored upload asset logging for improved readability.
- Added .env file to .gitignore to prevent environment secrets from being tracked.
- Updated Cargo.lock to include new dependencies: mime, mime_guess, and unicase.
- Modified Cargo.toml to enable multipart feature for reqwest.
- Introduced a new PowerShell script for building and publishing the Rojo plugin.
- Removed deprecated auth_cookie.rs file and adjusted upload command for new upload methods.
- Updated the cookie retrieval logic to use rbx_cookie::get_value instead of get_auth_cookie.
- Enhanced error message to guide users on logging into Roblox Studio or passing a cookie via --cookie.
- Updated versions for several packages: fs-err to 3.3.0, json5 to 1.3.1, ryu to 1.0.23, unicode-ident to 1.0.23, and zmij to 1.0.20.
- Adjusted checksums accordingly to reflect the new versions.
- Updated release documentation to include commit message guidelines.
- Enhanced the release command with a structured format for versioning and change highlights.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Added informational logging for staging and committing changes in both `CloneCommand` and `InitCommand`, enhancing visibility into the git process during project initialization and cloning.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.