Skip to content

Lot 9: ask the name again, drop ShutdownBlockReasonCreate, measure two games - #17

Merged
geeooff merged 4 commits into
mainfrom
lot-9-robustness
Sep 25, 2026
Merged

geeooff merged 4 commits into
mainfrom
lot-9-robustness

Conversation

@geeooff

@geeooff geeooff commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Lot 9's three smaller items, and what the field said about them.

  • The game's name is asked again while there is no answer. An attempt at naming the game now answers renamed, kept or undecided. Only an undecided one is followed by another: nothing rendering yet, no match, or a list or counters that cannot be read. The next attempt comes identify_after later, six attempts at most. The GPU counters' first read leaves 18 handles; thirty more reads leave nothing. There are five new engine scenarios, and the three that need a second attempt fail with the count set to one. In the field, four Battlefield 6 sessions each settled at the first attempt, two of them with the interval shortened to provoke the case. The item stays open until a session meets it.

  • ShutdownBlockReasonCreate is decided against. Per Microsoft's documentation, the shutdown screen lists only programs that block, never a windowless one. Registering a reason is what would put the watcher there. The watcher is gone 2 to 51 ms after Windows asks, and nothing can be restored at session end anyway.

  • Two games back to back: measured and closed. Four titles from Steam and the Store were run beside presence-probe watch. A game started after the first one's writer is released gets its own session, named right. Two games running together share one writer: one session, the commands right, but named after the first game. Two scenarios pin both shapes. Fixing the name needs a wait on the named game's process, left to Lot 18.

  • The record's claims about Windows' presence writer, corrected:

    • It can wait for the game to come to the front.
    • With someone at the keyboard, it is released anywhere from 0.6 s to 85 s after the game exits, not "some twenty seconds". It is never released while nobody touches the machine.
    • Two games running together share one writer.
    • A game's own settings window counts as the game.

    How it works and Getting started say the two points a player meets.

  • AGENTS.md: a branch's history is the agent's to rewrite until it reaches main, so that a lot lands as its logical commits.

build.ps1 test OK locally. The branch's build runs on the maintainer's machine.

🤖 Generated with Claude Code

geeooff and others added 4 commits September 25, 2026 16:34
The day's sessions contradicted three things the detection record said
of the writer. It can wait for the game's focus: Battlefield 6, left
loading behind another window, ran from 15:05:34 and got its writer at
15:08:02, the second the maintainer brought it forward. Its release with
someone at the keyboard is not "some twenty seconds" after the game's
exit: six titles took 0.6 s to 85 s, and only "never while nobody
touches the machine" stands. And it is not one per title: two games
running together share one writer, a Steam game and a Store game alike.
A game's own settings window counts too, being the game's executable.

Corrected in place in the detection record, Lot 1 and Lot 18, whose
table has the new rows; How it works and Getting started say the two
points a player meets in a line each. Nothing changes in the program:
these are Windows' verdicts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The refinement had one timed attempt, 20 s into a session, and a game
still on its loading screen spent it: Battlefield 6 read 0.0 % for every
candidate at 10 s and 75 % at 20 s, so a longer load kept the launcher's
name for the whole session. An attempt now answers renamed, kept or
undecided; only an undecided one -- nothing rendering, no match, a list
or counters that cannot be read -- is followed by another, identify_after
apart, six at most. The counters' first read leaves 18 handles and thirty
more leave nothing, measured with presence-probe footprint, so a retry
costs its sample and no more; How it works' cost table says so.

Five scenarios in engine/tests.rs, the scripted sensor now recording the
timeout each wait asked for; the three that need a second attempt fail
with the count set to one. In the field, four Battlefield 6 sessions on
this build each settled at the first attempt, two of them with the
interval shortened to provoke the case, so the item stays open until a
session meets it. Waiting on the named process instead is left with
Lot 18, which would use the same handle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ShutdownBlockReasonCreate is decided against. Microsoft's documentation
says the shutdown screen lists only programs that block, never one with
no visible window, and that registering a reason is what would put the
watcher there, as a program blocking; the log has it gone 2 to 51 ms
after Windows asks, and nothing can be restored at session end anyway.
Lot 5's "worth having" is corrected in place.

Two games back to back, measured by the maintainer beside presence-probe
watch with American Truck Simulator and Euro Truck Simulator 2, then
Wreckfest 2 from Steam and Starfield from the Store: a game launched
after the first one's writer was released gets a writer and a session of
its own, named right; two games running together share one writer, so
one session, the commands right but the name the first game's
throughout. Two scenarios pin both shapes, a command logging each edge
under the game's name. Closed with the maintainer's agreement, the name
left to the wait on the named process that Lot 18 would measure.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Asked by the maintainer: a lot's commits are reduced to its logical steps
before a push, a fix or a second attempt folded into the commit it
completes, and a pull request's branch may be force-pushed for it. Only
main's history still needs approval to rewrite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@geeooff geeooff changed the title Lot 9: ask the name again, drop ShutdownBlockReasonCreate, plan two games Lot 9: ask the name again, drop ShutdownBlockReasonCreate, measure two games Sep 25, 2026
@geeooff
geeooff merged commit e54f493 into main Sep 25, 2026
1 check passed
@geeooff
geeooff deleted the lot-9-robustness branch September 25, 2026 14:48
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