Fix inventory layout integration and qualify ordinary UI and radio guidance
This commit is contained in:
@@ -19,7 +19,7 @@ Before child launch it snapshots existing session directories. It accepts exactl
|
||||
|
||||
Each event requires the existing Gamescope/Xwayland listener and PID/start binding, native game executable/prefix/display and XRes/client PID agreement, exact original game window, mapped InputOutput geometry and existing same-game keyboard focus. It never focuses, raises, moves, resizes or points at a window, and never uses a host DISPLAY fallback or an input portal. The original explicit X11 connection is retained throughout. No key mapping/settings are changed; default unmodified `w` and Tab keysyms must resolve exactly. An already held private key refuses the experiment.
|
||||
|
||||
After fresh READY, the fixed request is W down/up, Tab down/up, wait for native INVENTORY_OPEN, retain a 500 ms checked open interval for native rendering/capture, then Tab down/up and wait for INVENTORY_CLOSED. Requested hold delays are 300 ms and 50 ms respectively, but ownership checks take time: **recorded per-event monotonic timestamps determine actual request duration**, not the requested sleeps. Native click filtering may reject a slow Tab; the helper preserves that failure. After each key-up, a bounded read-only XQueryKeymap poll must show all keys released. A busy state can be checked again at 25 ms intervals for at most 350 ms with fresh ownership/focus checks before each query; no additional input is sent during polling. Failed native queries and lost ownership/focus abort immediately. Release observations retain attempt counts and times. The unchanged 1.5-second supervisor covers the entire pending press. A final native key-state check is still required before completion. XTest request return/XFlush alone is insufficient.
|
||||
After fresh READY, the fixed request is W down/up, Tab down/up, wait for native INVENTORY_OPEN, retain a three-second checked open interval for native rendering/capture, then Tab down/up and wait for INVENTORY_CLOSED. Requested hold delays are 300 ms and 50 ms respectively, but ownership checks take time: **recorded per-event monotonic timestamps determine actual request duration**, not the requested sleeps. Native click filtering may reject a slow Tab; the helper preserves that failure. After each key-up, a bounded read-only XQueryKeymap poll must show all keys released. A busy state can be checked again at 25 ms intervals for at most 350 ms with fresh ownership/focus checks before each query; no additional input is sent during polling. Failed native queries and lost ownership/focus abort immediately. Release observations retain attempt counts and times. The unchanged 1.5-second supervisor covers the entire pending press. A final native key-state check is still required before completion. XTest request return/XFlush alone is insufficient.
|
||||
|
||||
A separate process supervises the worker before any Xlib connection is opened. A pending press may remain unconfirmed for at most 1.5 seconds before the supervisor interrupts the worker, allows one second for its guarded finally release, stops the exact created display-wrapper child and kills an unresponsive worker. The whole worker is bounded to 190 seconds. Native I/O can hang, so a finally release cannot be guaranteed: the supervisor records `supervision_failed`, `unconfirmed_held_key`, and false `all_attempted_presses_released` when appropriate. It does not open another connection or retry input after lost ownership/focus. The parent runner must immediately perform its existing whole private process-group/prefix cleanup on helper exit/failure; the helper never claims to have cleaned that entire group.
|
||||
|
||||
@@ -32,7 +32,7 @@ Installed primary API evidence is `/usr/include/X11/extensions/XTest.h` (`XTestQ
|
||||
The initial report overwrote the worker refusal with a generic unsuccessful-exit error. Later reports retain the original `error` and record the supervisor reason separately as `supervision_error`, preserving any earlier unconfirmed release. Delayed Xwayland state propagation is a diagnosis to test, not a proven explanation of that first failure; the historical failed report is unchanged.
|
||||
|
||||
|
||||
## Native observations and current failure
|
||||
## Native observations and remaining limits
|
||||
|
||||
[First attempt](evidence/game-2026-09-19-164944-input-release-refusal/report.json) delivered W and physical movement, but stopped after release-state confirmation refused. Its first supervisor implementation overwrote the underlying error; the archive is retained unchanged, so delayed key-state settlement remains an inference for that run. The corrected helper preserves both worker and supervisor diagnostics, polls read-only key state briefly, and retains all ownership and timeout checks.
|
||||
|
||||
@@ -40,4 +40,10 @@ The initial report overwrote the worker refusal with a generic unsuccessful-exit
|
||||
|
||||
[The 10-second failure-grace diagnostic](evidence/game-2026-09-19-165832-input-inventory-errors/report.json) completes all six key events, confirms server key release, observes 2.62 m native movement plus exact inventory open/close transitions and later neutral native input. Actual W hold is 0.64995 s; Tab holds are 0.23264 s and 0.23491 s, close to the installed 250 ms click limit. These measured values include guard overhead. The sequence is a bounded mechanism observation, not robust general input automation. Native inventory produces two `OverlayWidget Frame0 ... GridWidgetSlot ... expected: LayoutSlot` errors; the run stays failed, and its 45-second sampler is intentionally cut short by the existing 10-second diagnostic grace. No errors are suppressed and the helper's completed sequence does not override the failed native result.
|
||||
|
||||
All three runs confirm owned-prefix cleanup and unchanged 192-file addon sources. Baseline/open/closed native BMPs are archived for the third run. The open-labelled image still shows the prior world frame; the request marker and UI-state observation do not prove visible inventory presentation. A delayed capture must revalidate the exact menu before that visual claim. Stock inventory source diagnosis and a separate vanilla control are the next steps.
|
||||
All three runs confirm owned-prefix cleanup and unchanged 192-file addon sources. Baseline/open/closed native BMPs are archived for the third run. The open-labelled image still shows the prior world frame; the request marker and UI-state observation do not prove visible inventory presentation. A delayed capture must revalidate the exact menu before that visual claim. The subsequent [stock control and source diagnosis](inventory-slot-diagnosis.md) independently reproduce the target pair while preserving the control’s separate nine-error failure.
|
||||
|
||||
The [180423 ordinary Chat run](evidence/game-2026-09-19-180423-inventory-ready/runner.json.txt), using the storage-list adapter and settled capture, completes the bounded keyboard experiment with no captured engine/script errors: all six events and releases are verified, the independent native observer records 401 samples and 2.62 m maximum horizontal displacement, and exact inventory open/close plus later neutral input are observed. Private-window ownership and cleanup are verified, with unchanged 193-file addon sources. [Raw input evidence](evidence/game-2026-09-19-180423-inventory-ready/input-proof.json.txt) retains event times and ownership rather than inferring success from the key requests alone.
|
||||
|
||||
Native initialization advances from stage 6/five hit-zone points to stage 7/seven points with the loading overlay absent. The settled [open screenshot](evidence/game-2026-09-19-180423-inventory-ready/err-input-a75280fda4494a0ca7b14a693cf310e9-open.bmp) shows the character, vicinity and clothing slots without the overlay. This is first-open presentation evidence, not a finding that the entire interface is readable or every interaction works. The clean 175333 image still had a spinner; the clean 175938 run produced no open image, with no established cause. Those records are not rewritten by this later success.
|
||||
|
||||
Storage refresh, reopen cycles, item transfer and multiplayer remain pending. The completed experiment is a short ordinary keyboard movement/open/close path; it does not qualify a full escape route, broad input automation, authenticated multiplayer, FPS improvement or release acceptance.
|
||||
|
||||
Reference in New Issue
Block a user