- Migrate GhostObject to Ghost.Editor.Core to support weak-reference instance tracking, modification hooks, and state serialization
- Implement IDirtyTrackerService to track dirty objects and assets based on UndoService version tracking
- Update SceneAssetHandler to save scene assets via SceneSerializationService and register scene instances on load
- Refactor entity hierarchy sorting in SceneSerializationService to use high-performance UnsafeList and UnsafeHashMap structures
- Introduce ShortcutAttribute and update MenuUtility to support keyboard accelerators on menu items
- Map Ctrl+S shortcut to save dirty assets using the new File/Save command
- Standardized GhostObject as an abstract class for trackable scene objects, generating InstanceIDs and hooking into an internal object registry via WeakReferences.
- Built a robust UndoService using a cyclic RingBuffer<UndoOperation> for command history and symmetric Apply/Revert reciprocals.
- Fixed Ghost.Entities.Archetype performance issue by keeping bounds checks unconditionally inside GetLayout for safe control flow query paths, resolving a fatal AccessViolationException in unmanaged test runs.
- Resolved race conditions in the test suite by deleting MSTestSettings.cs to eliminate [Parallelize] vs [DoNotParallelize] ambiguity.
- Introduced rigorous UndoServiceTests and UndoServiceEcsTests guaranteeing lifecycle persistence, component state rollback, and structural mutation integrity in both managed POCOs and raw ECS chunks.