Skip to content

revert: remove Nextestudios TV control and stop changes - #125

Merged
lippdev merged 3 commits into
mainfrom
revert/nextestudios-prs
Sep 30, 2026
Merged

lippdev merged 3 commits into
mainfrom
revert/nextestudios-prs

Conversation

@lippdev

@lippdev lippdev commented Sep 30, 2026

Copy link
Copy Markdown
Owner

Reverts the recently merged Nextestudios PRs #93 (TV control) and #45 (stop closes front end).

This removes the ADB/Wake-on-LAN TV control implementation and restores the previous stop behavior. The revert preserves later unrelated commits on main.

Validation: 261 unit tests pass; Windows Release x64 build succeeds. The built executable is available at src/ConsoleMode/bin/Release/net8.0-windows10.0.19041.0/win-x64/ConsoleMode.exe.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

A tray restore can now race an in-progress start and leave the fullscreen frontend running after the displays have been restored.

Reviewed changes This review covers the three commits reverting Android TV control and the fullscreen-frontend stop behavior.

  • Android TV control removal — Removes the ADB/Wake-on-LAN service, persisted TV settings, UI, translations, docs, and tests.
  • Stop behavior revert — Restores direct setup restoration for stop signals and the previous RestoreNowAsync flow.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using GPT Luna | 𝕏

{
if (_busy || _restoreRequestActive) return;
_restoreRequestActive = true;
if (_busy && !Engine.State.IsActive) return;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because Engine.Start sets State.IsActive before finishing display setup, this condition lets the tray's always-available restore command run Engine.Stop() concurrently with startup. Startup can then continue after the restore and launch the frontend with the desktop restored.

Technical details
# Restore can race console startup

## Affected sites
- `src/ConsoleMode/ViewModels/MainViewModel.cs:784` — Allows `RestoreNowAsync` through while `_busy` is true as soon as the engine marks itself active.
- `src/ConsoleMode/Services/ConsoleEngine.cs:84` — `Start` sets `State.IsActive` well before it finishes display setup and launches the configured frontend.
- `src/ConsoleMode/Services/TrayService.cs:44` — The tray restore command calls `RestoreNowAsync` directly.

## Required outcome
- Do not run `Engine.Stop()` concurrently with `Engine.Start()`; a restore requested during startup must not leave startup continuing after the desktop has been restored.

@lippdev
lippdev merged commit 67e93f7 into main Sep 30, 2026
4 checks passed
@pullfrog pullfrog Bot mentioned this pull request Oct 1, 2026
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.

1 participant