mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 05:51:39 +00:00
Complete audit plan updates and enhance deduplication processes
- Updated the audit plan for the ambiguous paths follow-up, marking all critical fixes as completed, including dedup cleanup, added paths, and ref path finalization. - Introduced a new `atlas-dedup.mdc` file detailing the deduplication system, including matching algorithms, suffix cleanup, and integration for duplicate-named instances. - Enhanced the `syncback` process to ensure proper handling of ref paths and deduplication, improving metadata consistency and overall system reliability. - Implemented attribute-scoped path fixes in the `FsSnapshot` to ensure only relevant lines are modified during ref path updates. These changes improve the clarity and effectiveness of the audit process while enhancing the deduplication and synchronization mechanisms within the project.
This commit is contained in:
parent
ff48e05914
commit
ed1f61c093
11 changed files with 1226 additions and 123 deletions
|
|
@ -41,7 +41,7 @@ Atlas bridges filesystem and Roblox Studio, enabling professional development to
|
|||
**Current state:**
|
||||
- `atlas syncback` (CLI) is the **ground truth** for Roblox → filesystem syncing. It is battle-tested and handles edge cases reliably.
|
||||
- Plugin-based two-way sync (via `atlas serve` + the Studio plugin) is under active development to reach feature parity and match the resilience of CLI syncback.
|
||||
- The bar for replacing syncback is high: plugin two-way sync must handle all the same scenarios (encoded names, nested projects, property conflicts, large trees, concurrent edits) just as reliably before syncback can be deprecated.
|
||||
- The bar for replacing syncback is high: plugin two-way sync must handle all the same scenarios (slugified names, dedup suffixes, nested projects, property conflicts, large trees, concurrent edits) just as reliably before syncback can be deprecated.
|
||||
|
||||
**When working on two-way sync:** Plugin-based sync must produce **exactly the same filesystem output** that `atlas syncback` would give for the same input. Byte-for-byte identical files, identical directory structures, identical naming. If the plugin path produces different results, treat syncback as the correct reference unless there's an explicit, documented reason to diverge. Any divergence is a bug until proven otherwise.
|
||||
|
||||
|
|
@ -316,16 +316,25 @@ Reconciler.applyPatch(instanceMap, patch)
|
|||
src/ - Rust server/CLI
|
||||
cli/ - Command implementations
|
||||
snapshot/ - Core snapshot system
|
||||
matching.rs - Forward sync matching algorithm
|
||||
snapshot_middleware/ - File type handlers
|
||||
syncback/ - Roblox → filesystem
|
||||
matching.rs - Syncback matching algorithm
|
||||
dedup_suffix.rs - Dedup cleanup rules
|
||||
meta.rs - Meta file read/write helpers
|
||||
web/ - HTTP/WebSocket server
|
||||
change_processor.rs - Two-way sync filesystem writer
|
||||
rojo_ref.rs - Ref path system (Rojo_Ref_*, RefPathIndex)
|
||||
variant_eq.rs - Property value comparison
|
||||
|
||||
plugin/src/ - Lua Studio plugin
|
||||
App/ - Roact UI components
|
||||
Reconciler/ - Patch application logic
|
||||
matching.lua - Lua matching algorithm
|
||||
trueEquals.lua - Shared value equality module
|
||||
ChangeBatcher/ - Two-way sync patch creation
|
||||
Config.lua - Version and protocol config
|
||||
XXH32.luau - Hash function for plugin
|
||||
|
||||
rbx-dom/ - Git submodule (separate repo)
|
||||
rbx_binary/ - Binary format (rbxm/rbxl)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue