Skip to content

V9x Remote Agent v0.6.2

Choose a tag to compare

@github-actions github-actions released this 04 Sep 07:11
· 10 commits to main since this release

0.6.2 (2026-09-04)

Fixed

  • The notification-area icon, which had never appeared on any guest in any
    release that shipped it. v9x_tray_start passed a NULL lpThreadId to
    CreateThread, which Windows 9x rejects with ERROR_INVALID_PARAMETER
    (Windows NT accepts it, so no modern host ever flagged the call). The window
    and icon were created fine; the worker thread never existed, so
    Shell_NotifyIcon was never reached. Measured as tray-thread-failed gle=87
    on 98 SE. The owner window now also belongs to the worker thread and that
    thread pumps its own message queue, instead of the window being created on
    the main thread that blocks in accept() forever.
  • Tray failures are no longer silent. v9x_tray_start returned 0 for three
    different reasons behind one tray-icon-failed line, and a failing
    Shell_NotifyIcon was retried every second with its result discarded, so a
    wholly broken feature could not be diagnosed from the log. Each failure now
    names itself with its GetLastError (tray-window-failed,
    tray-loadicon-failed, tray-thread-failed, tray-notify-failed) and
    success logs tray-icon-added.

Added

  • scripts\set-autologon.ps1: report, enable or disable Windows 9x autologon
    on a guest, and clear a logon dialog that is already up (-Dismiss). Purely
    host-side, composed from existing verbs, no protocol change.
  • scripts\capture-emulator-window.ps1: capture the emulator's own window from
    the host. screenshot needs Explorer, so it returns exit 43 for precisely
    the states worth seeing - a logon dialog, a BIOS prompt, a shutdown hang.
    This reads the window instead and needs nothing from the guest.
  • Documented what the agent can and cannot do before anyone logs on.
    RunServices does start it before the logon dialog and everything except
    screenshot and wait-desktop works there, so a guest that prompts at boot
    stalls automation at its first wait-desktop while ping keeps succeeding.
    AGENTS.md now says to call info before concluding a guest is hung.