Commit graph

1668 commits

Author SHA1 Message Date
Joe
06d5ff4d80 Add warning theming and reject confirmation dialog to ConfirmingPage
- Introduced a new 'Warning' style in the theme for buttons, enhancing visual feedback for destructive actions.
- Updated the ConfirmingPage to include a reject confirmation dialog, allowing users to confirm their decision before rejecting changes.
- Adjusted button styles in the confirmation dialog to reflect the new warning theming, improving consistency and user experience.
2026-01-24 04:52:59 -06:00
Joe
a1cba88b94 Enhance installation script for conditional build modes
- Updated the installation script to conditionally handle release builds by enabling debug information in the release profile.
- Added logic to copy the PDB file alongside the executable to the installation directory, improving debugging capabilities.
2026-01-24 04:41:05 -06:00
Joe
9692c843e7 Refactor JSON serialization for WebSocket responses
- Switched to using the compact JSON5 encoder for improved transport efficiency while preserving NaN/Infinity values in WebSocket subscription responses.
- Updated comments for clarity on the changes made to the serialization process.
2026-01-23 06:43:59 -06:00
Joe
7c6c4a0e85 Refactor path handling in sourcemap processing
- Canonicalized project directory once for consistent comparison, improving the logic for generating relative paths.
- Enhanced fallback mechanism for absolute paths when files are outside the project directory, increasing robustness in path management.
2026-01-23 04:36:30 -06:00
Joe
4a6fdaa02d Improve path handling in sourcemap processing
- Enhanced the logic for creating output file paths by attempting to generate relative paths from the project directory.
- Added a fallback to absolute paths for files outside the project directory, improving robustness in path management.
2026-01-22 23:05:39 -06:00
Joe
9abc0e4728 Switch from JSON5 to standard JSON for sourcemaps to ensure compatibility with external tools like LSPs 2026-01-22 22:50:57 -06:00
Joe
2b716351c1 Refactor JSON handling and improve code clarity
- Updated error messages in Http.jsonDecode for better context.
- Enhanced serialization error handling in CompactJson5Serializer.
- Reformatted struct definitions in tests for improved readability.
- Adjusted assertions in tests for better clarity and consistency.
- Refactored project file name checks for improved readability.
2026-01-22 22:22:03 -06:00
Joe
fdd1d145cf json5 work 2026-01-22 22:19:00 -06:00
Joe
cd63b5c9c0 json5 2026-01-22 21:27:34 -06:00
Joe
074e62951f revert unresolved value patches 2026-01-22 19:51:44 -06:00
Joe
fd47b8d3b1 Enhance UnresolvedValue handling for CFrame and OptionalCFrame variants
- Added checks to skip serialization for CFrames and OptionalCFrames with NaN values, improving data integrity during processing.
- Introduced a new helper function `cframe_is_nan` to centralize NaN checks for CFrame values, enhancing code clarity and maintainability.
- Updated the logic in `from_variant_unambiguous` to ensure that invalid CFrame values are not serialized, preventing potential errors in downstream processing.
2026-01-22 19:21:59 -06:00
Joe
84ca8c4809 Update dependencies in Cargo.toml and Cargo.lock for improved compatibility
- Bumped versions of several dependencies, including `anyhow`, `backtrace`, `crossbeam-channel`, `csv`, `futures`, `hyper`, `log`, `num_cpus`, `rayon`, `reqwest`, `serde`, `serde_json`, `thiserror`, `tokio`, `profiling`, `yaml-rust2`, `blake3`, and `indexmap` to their latest releases for enhanced functionality and security.
- Updated submodule reference for `rbx-dom` to the latest commit.
- Adjusted dependencies in `crates/memofs` and `crates/rojo-insta-ext` to align with the updated versions, ensuring consistency across the project.
2026-01-21 19:46:27 -06:00
Joe
bf1d872f13 Refactor AmbiguousValue handling for CFrame conversion
- Introduced a new method `array12_to_cframe` to streamline the conversion of Array12 values to CFrame, improving code clarity and reducing redundancy.
- Updated handling for both CFrame and OptionalCFrame variants to utilize the new conversion method, enhancing maintainability and consistency in value processing.
2026-01-21 16:13:46 -06:00
Joe
69774fd546 Update .gitmodules for rbx-dom URL and enhance UnresolvedValue handling
- Changed the rbx-dom submodule URL in .gitmodules from SSH to HTTPS for easier access.
- Introduced a new method to handle OptionalCFrame variants in UnresolvedValue, allowing for better serialization by returning `None` for `OptionalCFrame(None)`.
- Updated various files to utilize the new handling logic, ensuring properties are only inserted when resolved values are available.
2026-01-21 16:07:24 -06:00
Joe
4ccef46540 Add rbx-dom submodule and update dependencies in Cargo files
- Introduced rbx-dom as a submodule, updating the .gitmodules file to include its path and repository URL.
- Modified Cargo.toml to reference rbx-dom dependencies using local paths instead of Git URLs, facilitating easier local development.
- Updated Cargo.lock to include new dependencies and versions, enhancing the project's dependency management.
- Added logic in meta_file.rs to skip None OptionalCFrame values during serialization, improving data handling.
2026-01-21 15:58:13 -06:00
Joe
c64aec6132 Enhance WhitespaceUtil with LCS-based diff algorithm for improved change detection
- Implemented a Longest Common Subsequence (LCS) algorithm to accurately compute line differences, enhancing the detection of whitespace-only changes.
- Refactored the CountLineDifferences function to utilize LCS for both exact and normalized comparisons, improving performance and clarity.
- Added normalization option to handle whitespace discrepancies effectively, ensuring more precise diff results.
2026-01-21 00:38:33 -06:00
Joe
1af3a18bcd Update snapshot files to remove unnecessary attributes and improve consistency in property handling
- Cleared out redundant attributes from various snapshot files, specifically removing `Rojo_Target_Value` and `Rojo_Target_PrimaryPart` where applicable.
- Ensured that attributes are consistently represented as empty objects when not needed, enhancing clarity in the snapshot structure.
- Adjusted related test cases to reflect these changes, ensuring alignment with the updated snapshot expectations.
2026-01-20 23:12:43 -06:00
Joe
cd05690d8a Refactor PatchTree and applyPatch for improved readability and logic consistency
- Restructured property change checks in PatchTree.build to enhance clarity and maintainability.
- Updated applyPatch to improve the handling of instance retrieval logic for removed instances.
- Simplified the findDuplicateNames function in diff.lua for better readability and consistency in handling duplicate names.
2026-01-20 23:05:16 -06:00
Joe
d21331cb65 Enhance fuzzy equality function for improved precision handling
- Updated the fuzzyEq function to utilize both absolute and relative epsilon for better precision when comparing numbers. This change improves the handling of small and large values, ensuring more accurate equality checks in the reconciliation process.
2026-01-20 23:02:14 -06:00
Joe
3c33054afd Add support for ignoring auto-created instances in sync process
- Introduced a new configuration for ignored class names in Config.lua to streamline the sync process by skipping instances that are auto-created by Roblox, such as TouchTransmitter and Camera.
- Updated PatchTree, applyPatch, and diff functions to utilize this configuration, enhancing efficiency by preventing unnecessary processing of these instances.
2026-01-20 22:58:44 -06:00
Joe
c5c6bf9a10 Update PatchTree and applyPatch to skip TouchTransmitter instances during patch processing
- Modified the logic in PatchTree.build and applyPatch functions to skip instances of ClassName "TouchTransmitter", which are auto-created by Roblox for touch events.
- This change enhances the efficiency of patch applications by preventing unnecessary processing of these instances.
2026-01-20 22:54:07 -06:00
Joe
aa09717545 Enhance PatchTree and applyPatch to skip TouchInterest instances during patch processing
- Added logic in PatchTree.build and applyPatch functions to skip instances of ClassName "TouchInterest", which are auto-created by Roblox for touch events.
- This change improves the handling of patch applications by preventing unnecessary processing of these instances.
2026-01-20 22:17:26 -06:00
Joe
4a09689090 Enhance WhitespaceUtil and Reconciler to handle duplicate names and improve diffing logic
- Updated WhitespaceUtil to return distinct values for totalDiff and whitespaceDiff when differences exceed 100 lines, based on content changes.
- Introduced findDuplicateNames function in Reconciler to identify and skip instances with duplicate names, ensuring reliable syncing.
- Enhanced diffing logic to account for ambiguous paths and log skipped duplicates during the sync process.
- Improved error handling in syncback_dir_no_meta to log and skip children with duplicate names in the file system.
2026-01-20 22:10:19 -06:00
Joe
06457bc0db Enhance property handling in PatchTree.build function to support EnumItem conversion for incoming raw numbers. Improved readability by restructuring property change checks and maintaining line change calculations for Source properties. 2026-01-20 21:49:42 -06:00
Joe
196cf7aed7 Refactor reference handling in Rojo system to prioritize path-based attributes
- Updated attribute prefixes to use REF_PATH_ATTRIBUTE_PREFIX for path-based references.
- Enhanced PatchApplyContext and related functions to support path-based linking, falling back to ID-based references when necessary.
- Implemented cleanup for legacy attributes to ensure they do not persist in the live game.
- Improved error handling and logging for reference resolution processes.
2026-01-20 21:34:37 -06:00
Joe
3cf452cb7b Refactor property extension in finalize_patch_application for improved readability 2026-01-20 21:12:31 -06:00
Joe
a1e270949d Add support for external references in RojoTree and syncback process
- Introduced REF_EXTERNAL_ATTRIBUTE_PREFIX for attributes pointing to external instances.
- Enhanced PatchApplyContext to track external references and apply them during patch application.
- Implemented get_instance_by_path method in RojoTree for resolving paths to external instances.
- Updated collect_referents function to handle external references and preserve their paths during syncback.
- Refactored link_referents to include external reference handling in the linking process.
2026-01-20 21:05:28 -06:00
Joe
9e270bd847 Refactor get_best_middleware function by removing static JSON model classes and simplifying middleware selection logic for improved clarity and maintainability. 2026-01-20 20:56:34 -06:00
Joe
2dfcac4ef7 Refactor code for improved readability by consolidating multi-line statements into single lines across various modules, including JSON serialization, snapshot middleware, and file name validation. 2026-01-20 20:48:52 -06:00
Joe
4caac7a31c Refactor line change calculations in PatchTree.build function for improved readability and maintainability. 2026-01-20 20:46:51 -06:00
Joe
a9a9d930d3 Update Cargo.toml and Cargo.lock to use rbx-dom dependencies from GitHub, replacing local paths with Git sources for improved version control and collaboration. 2026-01-20 20:45:43 -06:00
Joe
d0f7dffd2e Expand GUI element support in get_best_middleware function by adding various UI components and layout classes for enhanced middleware selection. 2026-01-20 20:23:23 -06:00
Joe
d1ea2feed7 Update dependencies in Cargo.lock and Cargo.toml; adjust rbx-dom paths and versions for improved compatibility and functionality. 2026-01-20 20:15:35 -06:00
Joe
7453dfdbe4 Enhance middleware selection in get_best_middleware function to include additional GUI types (ScreenGui, SurfaceGui, BillboardGui, AdGui) for improved directory handling. 2026-01-20 20:10:55 -06:00
CoderJoey
c36421626d
Merge branch 'rojo-rbx:master' into master 2026-01-20 20:10:14 -06:00
Joe
7045c460ab Implement component lifecycle management in DomLabel. Added isMounted flag to prevent updates after unmounting and ensured proper disconnection of motor step connection during component unmounting, enhancing stability and performance. 2026-01-20 19:56:04 -06:00
boatbomber
68eab3479a
Fix notification unmount thread cancel bug (#1211) 2026-01-19 16:35:19 -08:00
Ivan Matthew
2a1102fc55
Implement VFS Path normalization for improved cross-platform tree synchronization (#1201) 2026-01-19 15:04:59 -08:00
Ken Loeffler
02b41133f8
Use post for ref patch and serialize (#1192) 2026-01-19 22:44:42 +00:00
Joe
5cfc803094 Add installation directory creation and PATH update in installation script. The script now ensures the installation directory exists before copying the Rojo executable and adds it to the system PATH if not already present, improving accessibility for users. 2026-01-19 15:43:20 -06:00
Joe
033dec4e18 Refactor metadata file name generation in syncback_lua and AdjacentMetadata to strip known script type suffixes (.server, .client, .plugin) for improved compatibility. This change ensures accurate base name extraction for meta files while maintaining handling of Windows-invalid characters. 2026-01-15 16:08:53 -06:00
Joe
73684a97bb Merge branch 'master' of github.com:UserGeneratedLLC/rojo 2026-01-13 21:47:09 -06:00
Joe
9bedbd70fd Add whitespace change detection utility and integrate into PatchTree. Enhanced PatchTree to count line changes specifically for Source properties, distinguishing between total and whitespace-only changes. Updated theme colors for visual representation of whitespace changes in the UI. 2026-01-13 21:46:57 -06:00
Joe
b1a409b4a3 Add installation script for building and deploying Rojo plugin 2026-01-02 09:50:33 -06:00
Joe
00872e65a4 Remove syncback PowerShell and shell scripts. These files have been deleted as part of a cleanup process, streamlining the project structure and eliminating redundant scripts. 2025-12-29 00:46:40 -06:00
Joe
5ad50e65d4 Enhance syncback error handling by including full instance paths in duplicate name error messages. Updated the syncback_project function to provide clearer context when instances with duplicate names are detected. 2025-12-29 00:40:13 -06:00
Joe
777b060428 Add renormalization support in syncback scripts. Updated both PowerShell and shell scripts to include 'git add --renormalize .' when the clean flag is active, ensuring proper handling of line endings. 2025-12-29 00:25:44 -06:00
Joe
f6dc37e400 Enhance syncback functionality by implementing tree filtering based on ignoreTrees patterns. Added support for glob pattern matching to filter instances during serialization in both rbxm and rbxmx. Updated SyncbackSnapshot to compile and utilize these patterns efficiently. 2025-12-29 00:02:40 -06:00
Joe
cf5f7788fc Add clean flag functionality to syncback scripts for directory management. Implemented logic to delete and recreate the 'src/' directory structure when the 'clean' argument is provided, while filtering out the clean flag from other arguments passed to the syncback command. 2025-12-28 23:46:07 -06:00
Joe
978dd41047 Refactor metadata file name generation in syncback_lua to utilize the file stem from the script path, ensuring proper handling of Windows-invalid characters while maintaining compatibility with existing naming conventions. 2025-12-28 23:24:41 -06:00