Commit graph

286 commits

Author SHA1 Message Date
Joe
02638535ec Add VFS recording mode and enhance git configuration
- Introduced VFS recording mode and non-recursive watch support to optimize file-watching during `atlas serve` startup for large projects.
- Enhanced scripts-only mode to filter out non-script files at various processing layers.
- Configured `core.longpaths` in git during repository initialization to support long file paths on Windows.

These updates improve performance and usability for users managing large projects.
2026-03-06 17:29:29 -06:00
Joe
c60ee2f7b5 8.5.2
- Fix atlas init to commit project files before adding agent submodules
- Fix scripts-only mode to include explicitly requested instances in API responses
2026-03-03 08:10:38 -06:00
Joe
d434a97334 8.5.1
- Add atlas-push and atlas-playtest agent skills
- Add git_submodule_add and git_config_set helpers
- Improve atlas init with parallel submodule adding
- Update internal documentation
2026-03-02 09:59:05 -06:00
Joe
652e3b2f72 Update version to 8.5.0 and document changes in CHANGELOG
- Bump the version of the `atlas` package from 8.4.1 to 8.5.0 in both `Cargo.toml` and `Cargo.lock`.
- Add a new entry in `CHANGELOG.md` for version 8.5.0, detailing the MCP integration features and enhancements.
- Update the version in `plugin/Version.txt` to reflect the new release.

These changes prepare the project for the upcoming release and ensure proper version tracking.
2026-03-02 06:26:19 -06:00
Joe
1c3494083a Implement MCP integration, enhance scripts-only mode, and overhaul git and logging systems
- Added MCP WebSocket server and tools for AI agent integration, enabling real-time communication with Roblox Studio.
- Optimized scripts-only mode with improved script indexing and state management, enhancing performance and reliability.
- Overhauled git integration by replacing the gix API with command-line git, improving compatibility and reducing dependencies.
- Introduced structured logging with file output and enhanced logging features for better debugging and monitoring.
- Made various CLI enhancements, sync improvements, and dependency updates to streamline project functionality.

These changes significantly enhance the project's capabilities and performance across multiple areas.
2026-03-01 20:13:14 -06:00
Joe
75727171ef Enhance scripts-only mode in RojoTree with optimizations and fixes
- Optimized scripts-only mode by implementing a server-side script index for efficient reads and added a `syncScriptsOnly` flag to streamline synchronization.
- Fixed WebSocket ancestor injection to ensure new scripts in pruned subtrees are sent with their full ancestor chain.
- Introduced `DescendantAdded` watchers to detect new scripts created in Studio and send them to the server with appropriate containers.

These changes aim to improve performance and reliability in scripts-only mode.
2026-02-28 11:17:41 -06:00
Joe
513eab07ea v8.4.1 2026-02-19 08:08:17 -06:00
Joe
492ad19683 8.4.0 rc 2026-02-19 06:17:52 -06:00
Joe
8cf140af3a Add enhancements and fixes to VFS and syncback processes
- Introduced a VFS prefetch cache to optimize file reads during project loading, reducing I/O overhead for large projects.
- Implemented parallel I/O in the VFS backend to improve serve startup and file processing performance.
- Replaced the `float-cmp` dependency with a custom float comparison and formatting solution for precise disk representation.
- Fixed NaN equality handling in `trueEquals` for compound types.
- Improved patch application logic for legacy references and resolved multiple live syncback issues.
- Added yield intervals for plugin diffing to prevent UI freezes during large syncs.
- Enhanced syncback functionality with automatic dedup suffix stripping and improved error handling.

These changes aim to enhance performance, reliability, and user experience in file handling and synchronization processes.
2026-02-19 05:42:44 -06:00
Joe
c3cb9b4b98 Enhance syncback functionality and improve matching process
- Implemented live syncback via the Studio plugin, enabling Roblox to filesystem synchronization during `atlas serve` sessions.
- Added `SyncbackRequest` structure and API protocol validation for plugin-initiated syncback.
- Introduced `SyncbackConfirm` UI component for user confirmation of live syncback operations.
- Enhanced matching module with reference identity checks, caching, and valid children tracking.
- Updated deduplication logic to start suffix numbering at `~2` and improved attribute indexing in `RefPathIndex`.
- Refactored animation goal settings for instant transitions and updated color handling in the Reconciler.

These changes significantly enhance the syncback process and improve the overall performance and maintainability of the matching module.
2026-02-18 07:38:39 -06:00
Joe
5c4fd801db Enhance Reconciler with ambiguous path handling and improved matching logic
- 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.
2026-02-17 18:46:57 -06:00
Joe
3caa219df1 Bump version to 8.3.0
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-15 16:28:55 -06:00
Joe
056d3609f7 Add two-way sync support for Ref properties and optimize related components
- 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.
2026-02-14 17:20:45 -06:00
Joe
4c6de0d174 8.2.0
- 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>
2026-02-12 02:29:46 -06:00
Joe
7f89d4ce29 Enhance tree synchronization and testing capabilities
- 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.
2026-02-11 20:41:29 -06:00
Joe
737b3782dd 8.1.0
- 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>
2026-02-11 02:10:23 -06:00
boatbomber
2ac0f11730 Add option to forget prior info for place in reminder notif (#1215) 2026-02-10 21:47:42 -06:00
Joe
cec2c9f26e 8.0.3
- Bump toolchain deps: selene 0.30.0, stylua 2.3.1
- Add luau and luau-lsp to rokit.toml

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 18:29:41 -06:00
Joe
5f2d30d75a 8.0.2
- Update vscode-rojo extension submodule
- Bump dependencies (fs-err, json5, ryu, unicode-ident, zmij)
- Remove self-referencing atlas entry from rokit.toml

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 17:39:11 -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
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
4fdf562fba Enhance syncback performance with parallel file operations
- 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.
2026-02-02 18:10:57 -06:00
warsam
ad61bfa903 Fix description of 'Always' confirmation behavior
Corrected the description of the 'Always' confirmation behavior setting to clarify its functionality.
2026-01-27 04:59:17 -06:00
warsam
a05acf8d35 Make "Always" confirmation behavior setting work by handling it for ongoing sync patches
- 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
2026-01-27 04:59:17 -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
Micah
d08780fc14
Ensure that pruned Instances aren't treated as existing in syncback (#1179)
Closes #1178.
2025-11-29 21:21:48 -08:00
Micah
42568b9709
Release Rojo v7.7.0-rc.1 (#1174) 2025-11-27 12:10:57 -08:00
boatbomber
87f58e0a55
Use WebSocket instead of Long Polling (#1142) 2025-11-26 19:57:01 -08:00
Micah
a99e877b7c
Actually skip .gitignore if --skip-git is passed to init (#1172) 2025-11-26 13:59:12 -08:00
Micah
9b5a07191b
Implement Syncback to support converting Roblox files to a Rojo project (#937)
This is a very large commit.
Consider checking the linked PR for more information.
2025-11-19 09:21:33 -08:00
boatbomber
071b6e7e23
Improved string diff viewer (#994) 2025-11-18 20:26:44 -08:00
Micah
ea70d89291
Support .jsonc extension for all JSON files (#1159) 2025-11-18 18:47:43 -08:00
Micah
825726c883
Release 7.6.1 (#1151) 2025-11-06 18:49:05 -08:00
boatbomber
54e63d88d4
Slightly improve initial sync hangs (#1140) 2025-11-06 00:06:42 -08:00
boatbomber
4018c97cb6
Make CHANGELOG.md use consistent style (#1146) 2025-10-28 19:26:48 -07:00
boatbomber
d0b029f995
Add JSONC Support for Project, Meta, and Model JSON files (#1144)
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.
2025-10-28 17:29:57 -07:00
Sebastian Stachowicz
aabe6d11b2
Update default gitignores to include sourcemap (#1145) 2025-10-28 17:28:55 -07:00
boatbomber
181cc37744
Improve sync fallback robustness (#1135) 2025-10-20 20:13:47 -07:00
boatbomber
cd78f5c02c
Fix postcommit callbacks being skipped (#1132) 2025-10-14 12:13:59 -07:00
Micah
441c469966
Release Rojo v7.6.0 (#1125) 2025-10-10 19:17:55 -07:00
Micah
beb497878b
Add flag for skipping git initialization to init command (#1122) 2025-10-07 17:12:22 -07:00
Micah
80a381dbb1
Use SerializationService as a fallback for when patch application fails (#1030) 2025-09-21 15:09:20 -07:00
KAS
59e36491a5
Fix a grammar error and a typo (#1113) 2025-09-16 11:00:34 -07:00
boatbomber
54e0ff230b
Improvements to sync reminder UX (#1096) 2025-08-28 17:15:34 -07:00
wad
4e9e6233ff
fix: apply gameId and placeId only after initial sync (#1104) 2025-08-15 18:12:36 -07:00
ffrostfall
2ddb21ec5f
Add option for emitting absolute paths to rojo sourcemap (#1092)
Co-authored-by: Micah <micah@uplift.games>
2025-08-04 11:33:35 -07:00
Micah
a4eb65ca3f
Add YAML middleware that behaves like TOML and JSON (#1093) 2025-08-02 20:58:13 -07:00