<feed xmlns='http://www.w3.org/2005/Atom'>
<title>DropOut/ui/src, branch @dropout/ui-v0.0.0-alpha.0</title>
<subtitle>This is a new Minecraft launcher that is currently in development. It is designed to be a modern, fast and efficient launcher. It is written in Rust. Aims to be a Reproducible Minecraft Workspace Manager.</subtitle>
<id>https://git.hydroroll.team/DropOut/atom?h=%40dropout%2Fui-v0.0.0-alpha.0</id>
<link rel='self' href='https://git.hydroroll.team/DropOut/atom?h=%40dropout%2Fui-v0.0.0-alpha.0'/>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/'/>
<updated>2026-01-19T06:17:32Z</updated>
<entry>
<title>chore(ui): refactor workspace to monorepo</title>
<updated>2026-01-19T06:17:32Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-01-19T06:17:32Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=da0d79f0db873c08fab3bc85023167e174d18b0e'/>
<id>urn:sha1:da0d79f0db873c08fab3bc85023167e174d18b0e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(release): bump versions</title>
<updated>2026-01-19T02:50:40Z</updated>
<author>
<name>github-actions[bot]</name>
<email>github-actions[bot]@users.noreply.github.com</email>
</author>
<published>2026-01-18T16:41:01Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=549b4b443f12c5dd22c020dcec1e0e88c2202d13'/>
<id>urn:sha1:549b4b443f12c5dd22c020dcec1e0e88c2202d13</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(frontend): add instance editor modal with tabbed interface</title>
<updated>2026-01-18T06:53:44Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T06:53:44Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=d4ea239d4477e9427b52994ea25d54941dfdba3f'/>
<id>urn:sha1:d4ea239d4477e9427b52994ea25d54941dfdba3f</id>
<content type='text'>
- Create InstanceEditorModal.svelte with 4 tabs:
  * Info: Instance name, notes, metadata (created date, last played)
  * Version: Mod loader switcher and version display
  * Files: File browser for mods/resourcepacks/shaderpacks/saves/screenshots
  * Settings: Memory override and JVM arguments customization
- Wire InstanceEditorModal to InstancesView with Edit button
- Add FileInfo type definition to types/index.ts
- Fix accessibility issues: proper button roles, keyboard events
- All TypeScript and Svelte compilation errors resolved
- Enable comprehensive per-instance configuration management
</content>
</entry>
<entry>
<title>feat(frontend): add instance creation wizard</title>
<updated>2026-01-18T06:36:52Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T06:36:52Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=5d403b86833c23ff7974daa829a9cbb2f837f4ec'/>
<id>urn:sha1:5d403b86833c23ff7974daa829a9cbb2f837f4ec</id>
<content type='text'>
- Create multi-step InstanceCreationModal with version and mod loader selection
- Step 1: Instance name input
- Step 2: Minecraft version selection with search and filtering
- Step 3: Mod loader choice (vanilla/Fabric/Forge) with version selection
- Automatically installs vanilla version + mod loader during creation
- Wire new modal to InstancesView, replace old simple creation dialog
- Remove unused confirmCreate function

This wizard integrates version management into instance creation workflow,
streamlining the user experience by combining instance setup and version
installation into a single guided process.
</content>
</entry>
<entry>
<title>feat(backend): enhance instance management for editor support</title>
<updated>2026-01-18T06:27:45Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T06:27:45Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=6fdb730c323bcb1b052a2f9b13034603cbaf1e4d'/>
<id>urn:sha1:6fdb730c323bcb1b052a2f9b13034603cbaf1e4d</id>
<content type='text'>
- Sync instance.version_id after start_game, install_fabric, install_forge
- Add jvm_args_override and memory_override to Instance struct
- Add file management commands: list_instance_directory, delete_instance_file, open_file_explorer
- Support per-instance settings overrides (Java args, memory)
</content>
</entry>
<entry>
<title>feat(migration): implement shared cache migration with SHA1 dedup</title>
<updated>2026-01-18T05:43:12Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T05:43:12Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=17e8dd78ca5b7aae9baa4f86d38fa755c8af21c5'/>
<id>urn:sha1:17e8dd78ca5b7aae9baa4f86d38fa755c8af21c5</id>
<content type='text'>
- Add migrate_to_shared_caches() with hard link preference
- SHA1-based deduplication across all instances
- Copy fallback for cross-filesystem scenarios
- Auto-enable use_shared_caches after successful migration
- UI shows statistics: moved files, hardlinks/copies, MB saved
</content>
</entry>
<entry>
<title>fix(ci): improve pre-commit fmt hook configuration</title>
<updated>2026-01-18T05:34:52Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T05:34:52Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=02520ca62ac5e508e8748b2445171be64f459b6c'/>
<id>urn:sha1:02520ca62ac5e508e8748b2445171be64f459b6c</id>
<content type='text'>
- Add pass_filenames: false to fmt hook
- Add -- separator for cargo fmt args
- Manually format code with cargo fmt
</content>
</entry>
<entry>
<title>refactor: move version refresh logic to App.svelte and clean up GameState constructor</title>
<updated>2026-01-18T05:05:29Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T05:05:29Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=9a16c14b7fde683eb41526085c15852c69bed5e5'/>
<id>urn:sha1:9a16c14b7fde683eb41526085c15852c69bed5e5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix: complete Instance/Profile System isolation and state management</title>
<updated>2026-01-18T04:58:22Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-01-18T04:58:22Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=5e9850881d35d3af9ae8a2f99402e02300f77835'/>
<id>urn:sha1:5e9850881d35d3af9ae8a2f99402e02300f77835</id>
<content type='text'>
## Overview
Fixed critical multi-instance isolation bugs where versions, mod loaders, and
instance state were not properly isolated between instances. These changes ensure
full data isolation and consistent instance metadata.

## Bug Fixes - P0 (Critical Isolation Issues)

### 1. Backend: get_versions() command isolation
- Problem: Used global app_data_dir instead of instance-specific game_dir
- Fix: Added instance_id parameter, now queries instance.game_dir
- Impact: Versions are now properly isolated per instance

### 2. Frontend: delete_version missing instanceId
- Problem: Frontend passed only versionId, not instanceId
- Fix: Updated VersionsView.svelte to pass instanceId parameter
- Impact: Version deletion now targets correct instance

### 3. Frontend: get_version_metadata missing instanceId
- Problem: Metadata queries didn't specify which instance to check
- Fix: Updated VersionsView.svelte to pass instanceId parameter
- Impact: Version info displayed per-instance correctly

### 4. Frontend: Instance switching doesn't refresh versions
- Problem: Switching instances didn't reload version list
- Fix: Added $effect hook in GameState to watch activeInstanceId changes
- Impact: Version list auto-refreshes on instance switch

## Bug Fixes - P1 (State Synchronization)

### 5. Backend: install_fabric doesn't update Instance.mod_loader
- Problem: Instance.mod_loader field wasn't updated after installation
- Fix: Added instance_state.update_instance() call
- Impact: Instance metadata stays in sync

### 6. Backend: install_forge doesn't update Instance.mod_loader
- Problem: Instance.mod_loader field wasn't updated after installation
- Fix: Added instance_state.update_instance() call
- Impact: Instance metadata stays in sync

### 7. Backend: delete_version doesn't clean up Instance state
- Problem: Deleting version didn't clear Instance.version_id or .mod_loader
- Fix: Added cleanup logic to clear stale references
- Impact: Instance state remains valid after deletion

## Testing
- Added comprehensive integration tests in instance_isolation_tests.rs
- Tests document 10 key scenarios for multi-instance isolation
- All code compiles cleanly with no errors
</content>
</entry>
<entry>
<title>style: auto format and lint fix [skip ci]</title>
<updated>2026-01-16T12:56:47Z</updated>
<author>
<name>HsiangNianian</name>
<email>44714368+HsiangNianian@users.noreply.github.com</email>
</author>
<published>2026-01-16T12:56:47Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=e6de034475c8cdaef4a65d04dad7c626805d2ffc'/>
<id>urn:sha1:e6de034475c8cdaef4a65d04dad7c626805d2ffc</id>
<content type='text'>
</content>
</entry>
</feed>
