Documentation

Build, connect and diagnose

Authoritative guidance aligned with the v0.1.0 implementation.

python build.py configure --config Release
python build.py build --config Release
python scripts/run_quality_gate.py --runs 3
01

Build from source

Use Visual Studio 2022, CMake 3.25+, Python 3 and Qt 6.8.1 MSVC x64.

  • python build.py configure --config Release
  • python build.py build --config Release
  • python scripts/run_quality_gate.py --runs 3
02

Mirroring architecture

QML Presentation → MirrorViewModel → MirrorService → isolated scrcpy/ADB child processes.

03

Fail-honest diagnostics

Unknown evidence remains unknown. Raw ADB errors are translated into causes, solutions and recovery actions.

Presentation stays separate from device logic

The desktop application follows this dependency direction:

QML Presentation → C++ ViewModel → Application Services → Core Services → Domain → Infrastructure

QML binds typed observable state and emits commands. ADB and scrcpy processes are owned by C++ services, never by presentation code. Exceptions do not cross module, process, plugin or FFI boundaries.

Mirroring lifecycle

MirrorViewModel validates user settings and delegates to MirrorService. The service supervises one isolated scrcpy child process per device serial, publishes lifecycle events and performs bounded recovery. Failures retain a cause, solution and technical detail instead of exposing raw process output as the user-facing message.