* feat(workspaces): implement active workspace restoration from snapshot
- Added a new action to restore the active workspace from a snapshot.
- Integrated workspace restoration into IPC events for improved user experience.
- Refactored workspace loading logic to prioritize valid workspaces and handle invalid paths.
- Introduced utility functions for workspace path validation and normalization.
- Added tests to ensure correct functionality of workspace restoration and validation logic.
* feat(snapshot): refactor snapshot serialization and add environment preservation logic
- Moved snapshot serialization logic to a new file for better organization.
- Implemented environment preservation for collections during snapshot serialization.
- Added utility functions to handle collection environment checks and serialization.
- Introduced tests to validate the new serialization behavior and environment preservation.
- Enhanced existing tests to cover edge cases for unmounted collections and environment persistence.
* Add tests for missing and invalid environment files
* feat(snapshot): refactor devTools normalization and add saveToken to IPC handler
* refactor(snapshot): remove saveToken from IPC handler for renderer:snapshot:save
* feat(snapshot): implement collection deduplication logic in SnapshotManager and add corresponding tests
* feat(snapshot): enhance workspace-specific environment handling for shared collections
* feat(snapshot): remove sourceWorkspacePathname from snapshot serialization and related tests
* feat(snapshot): remove sourceWorkspacePathname from SnapshotManager and add tests for shared collection environment restoration
* feat(snapshot): refactor collection deduplication tests and enhance snapshot seeding utility
* feat(snapshot): enhance workspace path normalization and improve snapshot environment tests
---------
Co-authored-by: engineering-bruno <engineering@usebruno.com>