QA pass: first released ISO (2026-09-26)
Summary
The released ISO installs and boots, but a new user hit hard walls: the ISO and every install ran sshd with the lab key (root for anyone holding it); Shut down did nothing; the chosen browser never installed and then Firefox could not run (five separate causes); video and PDF viewing failed; installers failed with "Access denied" and no prompt. All of those are fixed below except the last step of elevation: after consent, elevated programs cannot show a window or finish (B56) -- installing GUI apps and adding users from Settings stay blocked until the elevated program can reach a display. A new ISO needs the versions listed at the end.
Image: sg-live-20260926-d65702f.iso (sha256 d121e172...), booted as a CD
in a private QEMU (OVMF UEFI, KVM, 6 GB, 4 CPUs, a fresh 32 GB virtio disk,
virtio-vga at 1280x800, intel-hda, usb-tablet), driven only through QMP
(keys, mouse, screendumps). Every screenshot was looked at. Running report:
items are added as the walk goes on.
Legend: Fixed in names the version that carries the fix; "open" is not fixed yet; "reported" went to the owning worker.
Critical
| # | What | Fixed in |
|---|---|---|
| B1 | The released ISO runs OpenSSH on *:22 with root's authorized_keys = the boot gate's test key, and machines installed from it keep both: whoever has that private key has root on every live session and every install. Now no key in the image; gates pass theirs as a systemd credential (QEMU -smbios type=11); sshd runs only when a key was provisioned; the image build refuses a baked key. Verified on the VM both ways. Existing installs: delete /root/.ssh/authorized_keys (an update note is needed). |
sg-image ecda63d |
| B30 | The PDF Viewer shows blank pages for any PDF without bookmarks (most PDFs): sg-pdf's outline request raised on poppler's NULL index iterator and the exception ended the bridge. |
sg-session 0.1.0-33 |
| B31 | Media Player crashed on any video: every signed-in program logged Failed to read display config (the display keys' containers under HARDWARE\DEVICEMAP\VIDEO and the hardware profile could not be created by a session), so DirectDraw had no primary surface. Also behind B22 (0 x 0 resolution) and B49. |
wine-sg 10.0-64 (0242) |
| B44 | Start > Shut down / Restart did nothing (Wine's ExitWindowsEx only ends the Windows session). Now it asks logind after the session's programs close; a polkit rule lets a local user shut down. Verified: Restart rebooted the VM. | wine-sg 10.0-64 (0241), sg-session 0.1.0-34 |
| B46 | The first-run setup's browser (Firefox) never installed: sg-oobe-browser used curl, which the image lacks ("curl: not found" every boot). Now sg-fetch (HTTPS-only urllib). Verified: Firefox installed in 40 s. |
sg-session 0.1.0-35 |
| B49 | Starting Firefox froze the whole shell (clock stopped, Start dead): its GPU process spun with the wineserver because DwmFlush's refresh grid comes from the unreadable display config (B31). |
wine-sg 10.0-64 (0242) |
| B61 | Firefox still exited at startup ("Couldn't load XPCOM", children "Exiting due to channel error"): the machine wineserver, started by systemd, kept the 1024 open-files limit, and one Firefox needs ~1,320 server descriptors -- every DLL load then failed. The server now raises its limit as Wine's clients do. Verified: example.com renders. (By the Firefox fork of this pass.) | wine-sg 10.0-68 (0249) |
| B60 | Firefox's sandboxed processes could read nothing in HKLM (the shared prefix's HKLM and display-key DACLs did not grant RESTRICTED / ALL APPLICATION PACKAGES read): no display config, no window class, tabs died. | wine-sg 10.0-67 (0248) |
| B53 | Firefox crashed on its first page ("No such local time"): GetTimeZoneInformation/...ForYear failed for every signed-in user (kernelbase opened HKLM's Time Zones and Nls keys with full access). Code page and language-group enumeration were empty too. |
wine-sg 10.0-66 (0243) |
| B55 | Installing an app failed: installers declare requireAdministrator, but ran unelevated into "Access denied" with no prompt (7-Zip). Now CreateProcess refuses them with ERROR_ELEVATION_REQUIRED and ShellExecute asks for consent on the secure surface; the SYSTEM account may read the user's profile (so it can read the downloaded installer). Verified: the consent prompt appears for 7-Zip from PowerShell. |
wine-sg 10.0-69 (0259), sg-session 0.1.0-36 |
| B56 | After consent, nothing elevated ever appears -- installers, "Add someone else to this PC" (elevated Settings), any admin GUI. SYSTEM (sgsystem) cannot connect to the session's Xwayland ("Authorization required"), and the first broker launch hangs. Fixed by giving each elevated program a display of its own (ADR 0012's own requirement, not the interim shared-display idea): the broker execs sg-elevated-run, which starts an Xwayland as SYSTEM and hands it to the compositor (ELEVATED) as its window manager; the program's windows are composited into the desktop, out of the session's reach (no XTEST/XSendEvent/XGetImage across; wineserver UIPI in wine-sg 0291). Gates: sg-compositor make test-elevated, sg-session make test-consent, sg-image make elevated-test. |
sg-compositor 0.2.0+sg6, sg-session 0.1.0-40, wine-sg 10.0-79 (VM gate make elevated-test 13/13) |
| B52 | Each Firefox start left explorer.exe /desktop processes spinning at 100% CPU forever (an assert in the display setup under the sandbox's token on its own desktop), until thread creation failed. |
wine-sg 10.0-66 (0247) |
Bugs
| # | Where | What | Fixed in |
|---|---|---|---|
| B4 | Live boot | 2 min 28 s from firmware to Setup on KVM; sg-prefix-init alone takes 77 s, all behind a scrolling text console. |
open |
| B2 | Live boot | No splash: the systemd status log and kernel audit lines scroll on the screen. | open |
| B8 | Common dialogs | Save As is Wine's old dialog (XP places bar, no navigation pane/breadcrumb/search) and starts in the Linux home directory (/home/live, shown as "live"): Notepad saved qa-note.txt where Explorer does not show it (only under Z:). |
open |
| B14 | Explorer | A pasted file appears with Date modified 1/1/1601 and the status bar says "0 items" until F5. | open |
| B15 | Desktop | Files and folders created in the Desktop folder after sign-in never appear on the desktop, even after F5. | open |
| B16 | Desktop | No selection highlight and no right-click menu on the desktop (no New, View, Sort by, Display settings, Personalize): it is Wine's launcher desktop (wine-sg 0090). | open |
| B17 | Explorer | A drive's context menu: the bold default item is the raw verb "shell"; "Create Link" instead of "Create shortcut"; Cut and Delete offered on a drive; no Open/Format/Eject. | open |
| B18 | Windows | Alt+F4 did not close an Explorer window (This PC) or Terminal; the X button did. | open |
| B19 | Dark mode | File Explorer stays light (only its title bar turns dark); in icon view the content pane turns dark while the rest stays light. | open |
| B20 | Windows | Every new window opens at the top-left corner (0,0), stacked exactly on the previous one. | open |
| B22 | Settings > Display | The resolution list offered "0 x 0" and only the current mode (B31). | wine-sg 10.0-64 (0242) |
| B24 | Settings > Apps | Apps & features lists only "Wine Mono Windows Support -- The Wine Project"; none of the system's apps; "1 apps found". | open |
| B25 | Settings > Devices | On a PC without Bluetooth, Settings froze 15-20 s with a garbage-painted window, then "not available right now". | sg-session 0.1.0-33 |
| B26 | Settings > Date & time | The time zone box was empty (Debian's zoneinfo/UTC is a link to Etc/UTC, not in the list); the text below read "(UTC+00:00) (UTC+00:00) Monrovia, Reykjavik". | sg-shell 0.1.0-49 |
| B27 | Settings > Updates | "Where updates come from" lists deb.debian.org/debian three times, debian-security twice, and debian-debug. | open |
| B32 | Crashes | A crash shows Wine's own UI: a "Wine Debugger" console window and a "Program Error" dialog about "a deficiency in Wine" with a link to Wine's Application Database. | open |
| B33 | Explorer (dark) | In icon view a selected item's label is white on a light-grey selection: unreadable. | open |
| B34 | Setup (windowed, dark mode) | The page stays white while its combo boxes, edit boxes, check box and buttons turn black. | open |
| B35 | Setup | Ctrl+A does not select all in its edit boxes. | open |
| B38 | First-run setup | Region United States, but the clock stays UTC: no time-zone step and none inferred. | open |
| B40 | Login screen | After the user name, the password box has no label; the status says "Signing in..." before a password was typed. | open |
| B41 | Shell | The first click on Start after sign-in (and on Task Manager's "More details") is ignored. | open |
| B42 | Lock screen | Heading "Locked" instead of the user's name; the user name box shown disabled. | open |
| B43 | Lock screen | Unlock takes ~10 s after the password. | open |
| B47 | Login screen | A failed sign-in of an unknown user put greetd's raw "pam_authenticate: AUTH_ERR" in the password box's label and left "Signing in..." (a later wrong password showed the proper message). | open |
| B54 | Terminal | winget is not available (known work in progress). | open |
| B57 | Run (Win+R) | Wine's Run dialog opens without keyboard focus; typing goes nowhere until clicked. | open |
| B58 | Voice typing | Win+H says "Voice typing is off" although the first-run setup's Microphone switch (which names voice typing) was On. | open |
| B59 | Voice typing | The bar does not close on Escape and stays on top. | open |
| B45 | Media Player | The video renderer's "ActiveMovie Window" is a separate taskbar button. | open |
| B50 | Firefox | Its caption buttons all draw as the same empty square (the icon font's glyphs are missing). | open |
| B51 | Firefox | Its UI dialog text is a serif face. | open |
| -- | VM note | OVMF drops sg-install's firmware boot entry when QEMU boots the CD first; real firmware keeps it, and \EFI\BOOT\BOOTX64.EFI is there. Not a bug. | -- |
Polish
| # | Where | What |
|---|---|---|
| B3 | os-release | PRETTY_NAME="Debian GNU/Linux 13 (trixie)" (seen by Linux tools and the boot menu). |
| B5 | Setup | The language/keyboard combo boxes are classic sunken 3D, unlike the rest of Setup. |
| B6 | Start menu | Generic blank-page icons: Computer Management, Device Manager, Disk Cleanup, Disk Management, Event Viewer, the Remote Desktop tile. |
| B7 | Taskbar | No search box or icon, nothing pinned; no volume icon in the tray although the PC has a sound card. |
| B9 | Taskbar | Explorer's button has a generic blank-window icon. |
| B10 | This PC | "Local Disk (Z:)" is the Linux root (1.44 GB on the live system). |
| B11 | Explorer | The navigation pane highlights two rows at once (Quick access > Desktop and This PC > Desktop). |
| B12 | Explorer | The New button's tooltip stays over its open menu, covering "Folder"; the New menu has only Folder and Text Document. |
| B13 | Explorer | Known extensions are shown ("New Text Document.txt"); a .txt file has a blank icon. |
| B21 | Settings > Display | "Multiple displays" text is developer jargon ("arranged by the compositor"). |
| B23 | Dark mode | Accent-coloured links are dark purple on #202020 -- poor contrast. |
| T5b | Task Manager | Every process has the generic icon; two start.exe background processes. |
| B36 | First-run setup | Jagged, aliased line art (globe, keyboard); a light classic scrollbar on the dark region list. |
| B37 | First-run setup | A wired connection is shown with Wi-Fi signal bars and a Wi-Fi hero picture. |
| B39 | Login screen | A bare "User name" box (no user tiles/avatars), classic grey 3D "Sign in" button, no power/accessibility/network corner buttons. |
Trademark ("Windows" as our product's name)
For the trademark worker (its wine-sg 0260 landed during this pass), not fixed here.
| # | Where | Text |
|---|---|---|
| T1 | Settings > Personalization > Colors | "Choose your default Windows mode", "Windows colors" |
| T2 | Settings > System > About | "Windows specifications"; Version "22H2 (build 19045)" is Windows' version, not ours |
| T3 | Settings > Privacy > General | "Let Windows track app launches to improve Start and search results" |
| T4 | Settings > Ease of Access > Display | "Simplify and personalize Windows", "Show animations in Windows", "Show transparency in Windows", "Automatically hide scroll bars in Windows" |
| T5 | Task Manager | the "Windows processes" group |
| T6 | Consent prompt | titled "User Account Control" (Microsoft's feature name) |
| T7 | Run dialog (Win+R) | Wine's: wine-glass icon, "...and Wine will open it for you" (the ISO predates wine-sg 0260; check whether 0260 covers it) |
Worked as expected
Install from the ISO (Custom, blank 32 GB disk) and the first boot of the installed disk; the first-run setup (region, keyboard, network, privacy, browser choice); sign-in, Lock/unlock, Restart (after the fix); Setup's first pages and Try; the live desktop and taskbar; Start and search; Notepad; WordPad (ribbon, tables); Paint; Calculator; Settings' Personalization (live dark mode), Sound, Network status, Accounts, Updates page, Privacy; Control Panel (dark); Task Manager; Terminal with PowerShell 7.6; Explorer thumbnails of pictures and video; Photos; PDF Viewer, Media Player and Firefox after the fixes; auto-update at reboot (the installed system took wine-sg 10.0-64 from apt on its own); Notepad's minimap on a C file (click scrolls); Snipping Tool (region, toast); Event Viewer; the consent prompt.
Versions carrying the fixes
wine-sg 10.0-64 (0241, 0242), 10.0-66 (0243, 0247), 10.0-67 (0248), 10.0-68 (0249), 10.0-69 (0259); sg-shell 0.1.0-49; sg-session 0.1.0-33,
-34, -35, -36; sg-image ecda63d. A new ISO needs all of them.