Skip to content

Fall back from protected installation-adjacent workspaces to user-writable storage #344

Description

@bobtista

Problem

The packaged Alpha 4 candidate cannot launch a profile from a normal non-administrator Windows session when the detected game is installed under a protected location such as Program Files.

StorageLocationService prefers installation-adjacent workspaces. Workspace preparation then fails before the game process starts when the packaged application cannot create or modify that directory.

Moving the workspace into user-writable storage also exposes two related problems:

  • HardLinkStrategy rejects cross-volume workspace preparation before reaching its existing copy fallback.
  • Existing workspace metadata can reuse a workspace under the previous protected root after storage resolution changes.
  • Profile editing and launching must resolve the same workspace root to avoid unnecessary recreation.

This blocks the “A profile can be created and launched” Windows validation item in #307.

Expected behavior

GenHub should create and launch profiles without administrator privileges when the game is installed under Program Files.

Writable installation-adjacent workspaces should remain available for same-volume hard-link efficiency. When that location is unavailable, GenHub should use a writable configured workspace or the application-data workspace directory and copy files when hard links cannot cross volumes.

Scope

This issue covers workspace selection, workspace reuse, and cross-volume workspace preparation.

The installation CAS pool has a separate protected-path problem: acquisition code persists <installation>/.genhub-cas, and the CAS resolver treats a nonempty path as available without checking writability. That requires separate handling for pool resolution, persisted settings, and existing CAS content.

Acceptance criteria

  • A packaged Windows build running without administrator privileges falls back from a protected installation-adjacent workspace to user-writable storage.
  • Writable installation-adjacent workspaces continue to work.
  • A writable configured workspace path is honored.
  • Profile editing and launching use the same workspace resolver.
  • Hard-link workspaces copy content instead of failing when workspace storage is on another volume.
  • A workspace stored under the previous root is recreated under the currently resolved root.
  • Filesystem path comparisons respect platform case sensitivity.
  • Focused regression tests and the complete Core test suite pass.
  • The packaged Alpha 4 candidate can create and launch a profile from a protected Windows installation.

Implementation

Addressed by #346.

Packaged non-administrator Windows validation and CI results are still required before the issue is complete.

Related work

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions