aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/ui/src/types
diff options
context:
space:
mode:
author苏向夜 <46275354+fu050409@users.noreply.github.com>2026-03-26 09:02:10 +0800
committerGitHub <noreply@github.com>2026-03-26 09:02:10 +0800
commit94b0d8e208363c802c12b56d8bdbef574dd1fb91 (patch)
treee86c8d46e73262c67c1755aaf4202cbcd1f8f844 /packages/ui/src/types
parent7d0e92e6d3b172adfe552ffae9b97f8dad6f63ae (diff)
parent3a31d3004b2814cd8a26d49a0f8a96636411dcd2 (diff)
downloadDropOut-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.ts7
-rw-r--r--packages/ui/src/types/bindings/instance.ts7
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
*/