Stained Glass OS

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.