The Asher manager is an Electron application (Asher.Electron) backed by Asher.Host, a headless .NET service that exposes install, uninstall, mod management, and settings over a JSONL protocol on stdin/stdout.

The manager stays in Distribution — it is not deployed into the game folder.

Application flow

  1. Electron main spawns Asher.Host.exe --jsonl and waits for a ready event
  2. Renderer lands on setup, install wizard, or home based on getApplicationMode / settings
  3. IPC forwards method calls (getSettings, install, uninstall, getMods, launchGame, markInstalled, …) to the host
  4. Progress streams back for long operations (install/uninstall)

Modes & screens

Mode Screens
Install wizard Welcome → Setup (detect/validate game folder) → Installing → Complete (optional launch + minimize)
Manager Home hub, Patch Manager, Settings

Uninstall lives under Settings → Removal, not in the sidebar:

Removal mode Behavior
Safe uninstallation In-app Host uninstall — restores backup, removes runtime files, returns to wizard
Total exclusion Launches game-folder Uninstall-Asher.cmd, then quits the app so locks clear

Features

Platform support

The manager is platform-aware through the host contract:

Linux packaging: npm run dist:linux (AppImage + tar.gz); Linux dependencies are listed in docs/Cross-Platform-Architecture.md.

Development

cd Asher.Electron
npm install
npm run build:host:debug   # or build:host for Release/dist
npm start

Smoke tests: npm run smoke, npm run smoke:install, npm run smoke:uninstall, etc.


< Back

O gerenciador Asher é uma aplicação Electron (Asher.Electron) apoiada pelo Asher.Host, um serviço .NET headless que expõe instalação, desinstalação, gerenciamento de mods e configurações via protocolo JSONL em stdin/stdout.

O gerenciador permanece em Distribution — não é implantado na pasta do jogo.

Fluxo da aplicação

  1. Electron main inicia Asher.Host.exe --jsonl e aguarda o evento ready
  2. Renderer abre setup, assistente de instalação ou home conforme getApplicationMode / settings
  3. IPC encaminha chamadas (getSettings, install, uninstall, getMods, launchGame, markInstalled, …) ao host
  4. Progresso é transmitido em operações longas (instalar/desinstalar)

Modos e telas

Modo Telas
Assistente de instalação Welcome → Setup (detectar/validar pasta) → Installing → Complete (launch opcional + minimizar)
Gerenciador Home hub, Patch Manager, Settings

A desinstalação fica em Settings → Removal, não na barra lateral:

Modo de remoção Comportamento
Desinstalação segura Uninstall in-app via Host — restaura backup, remove runtime, volta ao wizard
Exclusão total Executa Uninstall-Asher.cmd na pasta do jogo e encerra o app para liberar locks

Recursos

Suporte de plataforma

O gerenciador é ciente da plataforma através do contrato do host:

Empacotamento Linux: npm run dist:linux (AppImage + tar.gz); dependências Linux em docs/Cross-Platform-Architecture.md.

Desenvolvimento

cd Asher.Electron
npm install
npm run build:host:debug
npm start

Testes de fumaça: npm run smoke, npm run smoke:install, npm run smoke:uninstall, etc.


< Voltar

Portfolio