View on GitHub

scrcpy-gui

👻 A simple & beautiful GUI application for scrcpy.

M0–M4 completion audit

Audit baseline: master after PR #203, 2026-08-16. This document treats missing direct evidence as incomplete; parser tests and CI are not substituted for physical-device results.

Status vocabulary

Release acceptance

Requirement Status Authoritative evidence
Unit/integration/typecheck/build on three hosts Complete PR #203 validation; 21 files / 185 tests, build, prepared Windows runtime, and Chocolatey metadata
Official scrcpy download and SHA-256 Complete pinned scrcpy 4.1 hashes in scripts/fetch-scrcpy.mjs; v2.4.1 release workflow
Stable, complete asset names Complete v2.4.1 has 16 assets: 14 platform/Chocolatey packages, SPDX SBOM, and manifest
Execute packaged scrcpy/ADB Complete release jobs execute scrcpy 4.1 and ADB 1.0.41 from extracted final archives
Installed GUI starts on three hosts Complete v2.4.0 → v2.4.1 published-asset lifecycle run loads the production file:// Renderer on macOS, Windows, and Ubuntu/Xvfb
Install, upgrade, uninstall Complete for hosted native paths the same run verifies the v2.4.1 manifest and performs stable-to-patch lifecycle through DMG, NSIS, and Debian packages; interactive UX remains a disclosed manual gap
Asset manifest and provenance Complete all 15 non-manifest assets match SHA256SUMS.txt and uploaded digests; strict SLSA verification covers all 16 assets
Issue reply with release and verification Complete where the request is fulfilled #139 remains open because Community publication has not occurred; verified .nupkg files are attached to stable releases

M0 — stable baseline

Complete

Not complete

M0 status: software/release automation complete; milestone exit still blocked by real-device and Community publication evidence.

M1 — capability and session foundation

Status: Complete in software scope.

M2 — device workspace and artifacts

Status: Complete in software scope.

The services have controlled fake-ADB and filesystem evidence. Physical transfer/install behavior remains part of the hardware matrix rather than being promoted from those tests.

M3 — scrcpy 4.x scenes

Status: Software complete / hardware pending.

Complete software evidence:

Missing exit evidence:

The milestone requires at least one platform hardware smoke for every mode. It therefore remains incomplete even though failure paths and serialization are tested.

M4 — device groups and safe automation

Status: Complete in software scope.

Evidence: tests/batchAutomationService.test.ts, tests/automationRunner.test.ts, tests/automationTransferService.test.ts, tests/ipcContract.test.ts, and artifact/config tests. The exit invariants—no false overall success, confirmation for dangerous actions, and no raw shell—are directly asserted.

Research boundary

No Research item has been promoted into the roadmap. Searches of source and tests show no embedded mirror, plugin API, or claimed low-latency key-mapping implementation. Existing window/session controls are M1–M4 functionality, not evidence for the v3 research candidates.

Research remains intentionally unimplemented until a prototype, cross-platform measurements, security review, and maintainer commitment exist.

Evidence required to close the full objective

  1. Attach at least one authorized physical Android device and record the M0 baseline plus every M3 scene’s success/failure evidence.
  2. Expand the physical matrix as available across Android versions, vendors, USB/TCP/IP/pairing, hosts, screen/audio/recording, and multiple devices; disclose every unavailable cell.
  3. Configure a real Chocolatey maintainer credential, submit the package, wait for moderation, and verify Community install and upgrade before closing #139.
  4. Keep signing/notarization and manual interactive installer UX disclosed until separately exercised; neither is inferred from hosted-runner startup.

The MIT v2.4.2 current-tree audit is complete: #69 was closed without merge, its commit is not reachable from current history, and every current line of the v2 localization implementation is maintainer-authored. This licensing change is separate from the remaining physical-device and Chocolatey Community evidence and is not counted as an M0–M4 completion claim.

Use the physical hardware smoke runbook and npm run smoke:hardware to generate the redacted preflight report and execute the remaining scene checklist. A blocked preflight report is evidence that prerequisites are missing, not evidence that a scene passed.