Skip to content

release: establish initial ADB and WinDroid Studio foundation - #43

Merged
SamratB8 merged 15 commits into
mainfrom
dev
Jul 16, 2026
Merged

release: establish initial ADB and WinDroid Studio foundation#43
SamratB8 merged 15 commits into
mainfrom
dev

Conversation

@SamratB8

Copy link
Copy Markdown
Collaborator

Summary

This pull request publishes the first stable WinDroid Runtime development foundation from dev to main.

It includes the initial ADB integration building blocks, a WinDroid Studio startup fix, manual verification of the current WinUI application, and a major README update defining the project’s developer-first direction and long-term shared-platform strategy.

Included work

ADB foundation

  • add ADB executable path detection
  • add safe asynchronous process execution
  • support structured stdout, stderr, exit codes, startup failures, timeout, and cancellation
  • add a thin wrapper for running adb devices
  • keep raw device-output parsing out of scope for the next issue

WinDroid Studio

  • fix startup when SENTRY_DSN is not configured
  • initialize Sentry only when a non-empty DSN is available
  • preserve normal application startup and shutdown behavior
  • verify that the WinUI application opens and closes successfully
  • verify that the APK file picker opens and cancellation is handled correctly

Project direction and documentation

  • update the README to reflect the project’s early-development status
  • define a developer-first roadmap through Issue Add basic logcat viewer #36
  • document one shared runtime foundation
  • describe possible future Developer, Desktop, and Gaming experiences
  • establish a post-Issue Add basic logcat viewer #36 architecture and RFC checkpoint
  • expand roadmap phases, readiness gates, compatibility planning, security, privacy, licensing, and proprietary-component boundaries
  • clarify that consumer and gaming experiences are long-term plans rather than current capabilities

Validation

  • solution restore succeeds
  • Debug build succeeds
  • Release build succeeds
  • WinDroid Studio launches successfully from the command line
  • WinDroid Studio closes without leaving a running process
  • APK picker opens successfully
  • git diff --check is clean
  • ADB wrapper validation confirmed exact adb devices argument construction and raw result preservation

Scope

This PR does not add:

  • parsing of adb devices output
  • connected-device UI
  • runtime-engine implementation
  • Android image booting
  • consumer or gaming editions
  • Google Play or proprietary service integration
  • unrelated refactoring

Follow-up

The next planned contributor task is Issue #6: parsing raw adb devices output into structured device models.

Closes #3.
Closes #4.
Closes #5.

SamratB8 added 15 commits July 12, 2026 14:08
Add comprehensive SECURITY.md and legal-notes.md documents to establish clear policies for vulnerability reporting, security scope, licensing boundaries, trademark usage, and contribution requirements.

Update README.md to reference the new legal-notes.md document and mark the corresponding tasks as complete.
Add the initial ADB executable path resolution service.

- add AdbPathResolver and AdbPathResult
- check an optional custom ADB executable path
- fall back to searching the current system PATH
- support adb.exe and adb
- return normalized absolute paths
- report missing ADB through a structured failure result
- keep the implementation independent from WinUI and process execution

Closes #3.
Added a navigation section with links to website, organization, discussions, and issues near the top of the README. Also added information about the security policy and contact email for private security reports in the contributing section.
Add a reusable asynchronous process runner to WinDroid.Adb.

- add ProcessRunner and CommandResult
- launch executables directly without a shell
- pass arguments safely through ProcessStartInfo.ArgumentList
- capture stdout and stderr concurrently
- return normal and non-zero exit codes
- support timeout and caller cancellation
- avoid launching when the caller token is already cancelled
- terminate the process tree on timeout or cancellation
- use bounded cleanup waits
- return structured startup failures
- keep the implementation separate from UI and ADB command parsing

Closes #4.
Add a thin wrapper for running the adb devices command.

- add AdbDeviceService and GetDevicesAsync
- use the existing ProcessRunner
- accept a caller-supplied resolved ADB path
- pass exactly one argument: devices
- forward timeout and cancellation unchanged
- return the raw CommandResult unchanged
- preserve stdout, stderr, exit code, timeout, cancellation, and startup failures
- keep device parsing and UI integration out of scope

Closes #5.
Prevent WinDroid Studio from crashing at startup when SENTRY_DSN is not configured.

- initialize WinUI before optional Sentry setup
- read SENTRY_DSN from the environment
- only initialize Sentry when the DSN is non-empty
- make the Sentry handle nullable
- only flush and dispose Sentry when it was initialized
- preserve normal window startup and shutdown behavior

The app now launches successfully without Sentry configuration.
@SamratB8
SamratB8 merged commit 843c88a into main Jul 16, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement adb devices command wrapper Create process runner for executing ADB commands Implement ADB path detection service

1 participant