diff options
| author | 2026-03-26 09:02:10 +0800 | |
|---|---|---|
| committer | 2026-03-26 09:02:10 +0800 | |
| commit | 94b0d8e208363c802c12b56d8bdbef574dd1fb91 (patch) | |
| tree | e86c8d46e73262c67c1755aaf4202cbcd1f8f844 /packages/ui/src/types | |
| parent | 7d0e92e6d3b172adfe552ffae9b97f8dad6f63ae (diff) | |
| parent | 3a31d3004b2814cd8a26d49a0f8a96636411dcd2 (diff) | |
| download | DropOut-94b0d8e208363c802c12b56d8bdbef574dd1fb91.tar.gz DropOut-94b0d8e208363c802c12b56d8bdbef574dd1fb91.zip | |
Add game lifecycle management and instance import/export tools (#117)
## Summary by Sourcery
Add centralized game process and instance lifecycle management, shared
cache-aware path resolution, and instance import/export/repair
capabilities across backend and UI.
New Features:
- Track a single running game process in the backend, expose stop-game
control, and emit structured game-exited events with instance and
version context.
- Introduce instance path resolution that supports shared caches for
versions, libraries, and assets, and use it across game start, install,
and version management APIs.
- Add import, export, and repair operations for instances, including
zip-based archive support and automatic recovery of on-disk instances.
- Expose new instance lifecycle and repair APIs to the frontend and wire
them through the client and instance store.
- Add per-instance start/stop controls in the instances view and
instance selection in the bottom bar for launching games.
Enhancements:
- Guard instance operations with per-instance locks and track active
operations such as launch, install, delete, and import/export.
- Improve handling of Microsoft login errors and polling status, with
clearer user feedback and safer interval management.
- Simplify config mutation during shared cache migration and centralize
instance directory resolution in the backend.
- Initialize a game lifecycle listener at app startup to keep UI state
in sync with backend game exit events.
Build:
- Configure the Vite dev server to use a fixed localhost host and port
for the UI dev environment.
Diffstat (limited to 'packages/ui/src/types')
| -rw-r--r-- | packages/ui/src/types/bindings/core.ts | 7 | ||||
| -rw-r--r-- | packages/ui/src/types/bindings/instance.ts | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/ui/src/types/bindings/core.ts b/packages/ui/src/types/bindings/core.ts index 94e3bde..70cf804 100644 --- a/packages/ui/src/types/bindings/core.ts +++ b/packages/ui/src/types/bindings/core.ts @@ -11,6 +11,13 @@ export type FileInfo = { modified: bigint; }; +export type GameExitedEvent = { + instanceId: string; + versionId: string; + exitCode: number | null; + wasStopped: boolean; +}; + export type GithubRelease = { tagName: string; name: string; diff --git a/packages/ui/src/types/bindings/instance.ts b/packages/ui/src/types/bindings/instance.ts index 2c4f8ae..a8247a9 100644 --- a/packages/ui/src/types/bindings/instance.ts +++ b/packages/ui/src/types/bindings/instance.ts @@ -27,6 +27,13 @@ export type InstanceConfig = { activeInstanceId: string | null; }; +export type InstanceRepairResult = { + restoredInstances: number; + removedStaleEntries: number; + createdDefaultActive: boolean; + activeInstanceId: string | null; +}; + /** * Memory settings override for an instance */ |