PASS GUI hook: original show arguments and all return values preserved
PASS GUI binary: exactly one native-style setting with correct label/text/state
PASS GUI original settings: no old callbacks or index observers triggered
PASS GUI binary: two-way clicks use shared setter and deduplicate events
PASS GUI sync: menu state reflected without callback loop
PASS GUI alternative: labelled MultiTextOption row is a two-value fallback
PASS GUI compact wrapper: one external label plus one option supported
PASS GUI repeated open: no duplicate rows or nested hooks
PASS GUI reopen: global state retained and original close returns preserved
PASS GUI paused simulation: native GUI update still refreshes control
PASS GUI other vehicle: no combine setting is inserted
PASS GUI forage harvester: no setting is inserted
PASS GUI client-only combine: no unsupported multiplayer write route
PASS GUI another modal: hidden/covered control cannot toggle state
PASS GUI exit: stale callbacks cannot change global state
PASS GUI no safe layout: native menu retained and bounded diagnosis only
PASS GUI fixed layout: insufficient room is rejected instead of overlap
PASS GUI fixed layout: sufficient observed room permits one extra row
PASS GUI tab change: own control follows visible compatible settings layout
PASS GUI delayed settings build: retry installs after first incomplete frame
PASS GUI build failure: own row rollback leaves originals usable
PASS GUI aliased clone: never sanitizes or deletes a source element
PASS GUI cleanup: restores owned wrappers and only deletes own focus nodes
PASS GUI hook chain: another mod wrapping after us remains intact on unload
PASS GUI delayed native API: install retries without overwriting an existing hook
PASS GUI native show failure: original error is not swallowed
PASS GUI root absent: original return retained and no state change
PASS GUI symbolic lookup: loaded screen controller root can be resolved
PASS GUI invalid index events: ignored rather than coerced to ON/OFF
PASS 122 VISUAL: initial ON highlights right endpoint even when cloned state already equals ON
PASS 122 VISUAL: initial OFF highlights left endpoint with native style
PASS 122 VISUAL: marker remains on ON after 1200 idle sync calls
PASS 122 VISUAL: marker remains on OFF after 1200 idle sync calls
PASS 122 VISUAL: repeated native GUI updates cannot move marker out of bounds
PASS 122 VISUAL: OFF/ON marker correct immediately after native setter returns
PASS 122 VISUAL: setter observer re-entry leaves exactly one owner write per click
PASS 126 VISUAL: menu-state sync survives the next GUI animation update
PASS 122 VISUAL: changing layout width recalculates delta after attachment
PASS 122 VISUAL: wrong detached clone delta is replaced with actual width
PASS 122 VISUAL: native keyboard/gamepad-style left/right remain immediately usable
PASS 122 VISUAL: same-state sync never invokes native full update or repeats selection animation
PASS 122 VISUAL: source slider geometry and source binary setter remain untouched
PASS 122 VISUAL: zero geometry waits safely and recovers once layout resolves
PASS 122 MODE: steering assist tab never contains the swath control
PASS 122 MODE: a switch to steering removes own row on next GUI update, not after 250ms
PASS 122 MODE: returning to worker restores control and retained OFF value
PASS 122 MODE: switching mode is not a global automation change
PASS 122 MODE: live tab wins over opposite saved vehicle mode
PASS 122 MODE: click arriving before removal cannot toggle in steering tab
PASS 122 MODE: switching tabs while paused still hides and restores correctly
PASS 122 MODE: repeated worker/steering transitions do not leak own focus IDs
PASS 122 MODE: English labels supported without guessed XML identifier
PASS 122 MODE: reversed order is mapped by labels, not hard-coded tab number
PASS 122 MODE: button captions can identify a two-way control without texts array
PASS 122 MODE: unknown labels fail closed rather than expose row in GPS
PASS 122 MODE: selector absent keeps menu untouched and can recover on later build
PASS 122 MODE: conflicting visible selectors never guessed
PASS 122 MODE: ambiguous selected buttons do not substitute focus for selection
PASS 122 MODE: selected sibling button pair is a supported alternate header
PASS 122 MODE: hidden selector cannot grant visibility using stale state
PASS 122 MODE: native mode values, callbacks and settings remain untouched
[VorgewendeOhneStrohablage 1.0.12.8] SCRIPT_LOADED control=HELPER_MENU_ONLY stateMachine=true
[VorgewendeOhneStrohablage 1.0.12.8] GROUND_PROBE_INSTALLED read_only_result_observer; no_straw_created
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_HOOK AISettingsDialog.show; worker_tab_only; native endpoint marker; global switch
[VorgewendeOhneStrohablage 1.0.12.8] LOAD_MAP defaultEnabled=true control=HELPER_MENU_ONLY build=cropNativeFlag-128 mode=FIELD
[VorgewendeOhneStrohablage 1.0.12.8] POLICY NATIVE_FIELD: headland=chopper rows=swath; no_windrow=chopper; unknown_crop=no_enable; unknown_phase=no_new_decision
[VorgewendeOhneStrohablage 1.0.12.8] COMBINE_FOUND vehicle=combine.xml capable=true swathAvailable=true chopperAvailable=true swath=false server=true aiMethod=nil turnMethod=nil
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_OPEN vehicle=combine.xml root=true supported=true
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=WORKER source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_VISUAL native_slider endpoint=0.2 travel=0.2 state=2 animation=stopped
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_ADDED type=binary id=nil name=aswHelperMenuRow profile=nativeExampleProfile flow=nil visible=true parent={type=scrollingLayout id=nil name=nativeSettings profile=nil flow=vertical visible=true} state=true scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] AUTOMATION_SET enabled=false source=HELPER_MENU scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] NOTIFY Vorgewende ohne Strohablage: AUS
[VorgewendeOhneStrohablage 1.0.12.8] AUTOMATION_SET enabled=true source=HELPER_MENU scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] NOTIFY Vorgewende ohne Strohablage: EIN
[VorgewendeOhneStrohablage 1.0.12.8] UNLOAD map_deleted
PASS 126 FULL MENU: actual callback changes real state and popup without input APIs
[VorgewendeOhneStrohablage 1.0.12.8] SCRIPT_LOADED control=HELPER_MENU_ONLY stateMachine=true
[VorgewendeOhneStrohablage 1.0.12.8] GROUND_PROBE_INSTALLED read_only_result_observer; no_straw_created
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_HOOK AISettingsDialog.show; worker_tab_only; native endpoint marker; global switch
[VorgewendeOhneStrohablage 1.0.12.8] LOAD_MAP defaultEnabled=true control=HELPER_MENU_ONLY build=cropNativeFlag-128 mode=FIELD
[VorgewendeOhneStrohablage 1.0.12.8] POLICY NATIVE_FIELD: headland=chopper rows=swath; no_windrow=chopper; unknown_crop=no_enable; unknown_phase=no_new_decision
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_OPEN vehicle=combine.xml root=true supported=false
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=WORKER source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] UNLOAD map_deleted
PASS 126 FULL MENU: actual filter excludes forage harvesters
[VorgewendeOhneStrohablage 1.0.12.8] SCRIPT_LOADED control=HELPER_MENU_ONLY stateMachine=true
[VorgewendeOhneStrohablage 1.0.12.8] GROUND_PROBE_INSTALLED read_only_result_observer; no_straw_created
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_HOOK AISettingsDialog.show; worker_tab_only; native endpoint marker; global switch
[VorgewendeOhneStrohablage 1.0.12.8] LOAD_MAP defaultEnabled=true control=HELPER_MENU_ONLY build=cropNativeFlag-128 mode=FIELD
[VorgewendeOhneStrohablage 1.0.12.8] POLICY NATIVE_FIELD: headland=chopper rows=swath; no_windrow=chopper; unknown_crop=no_enable; unknown_phase=no_new_decision
[VorgewendeOhneStrohablage 1.0.12.8] COMBINE_FOUND vehicle=combine.xml capable=true swathAvailable=true chopperAvailable=true swath=false server=true aiMethod=nil turnMethod=nil
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_OPEN vehicle=combine.xml root=true supported=true
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=WORKER source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_VISUAL native_slider endpoint=0.2 travel=0.2 state=2 animation=stopped
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_ADDED type=binary id=nil name=aswHelperMenuRow profile=nativeExampleProfile flow=nil visible=true parent={type=scrollingLayout id=nil name=nativeSettings profile=nil flow=vertical visible=true} state=true scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] AUTOMATION_SET enabled=false source=HELPER_MENU scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] NOTIFY Vorgewende ohne Strohablage: AUS
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=STEERING_ASSIST source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=WORKER source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_VISUAL native_slider endpoint=0 travel=0.2 state=1 animation=stopped
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_ADDED type=binary id=nil name=aswHelperMenuRow profile=nativeExampleProfile flow=nil visible=true parent={type=scrollingLayout id=nil name=nativeSettings profile=nil flow=vertical visible=true} state=false scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_OPEN vehicle=combine.xml root=true supported=true
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_VISUAL native_slider endpoint=0 travel=0.2 state=1 animation=stopped
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_ADDED type=binary id=nil name=aswHelperMenuRow profile=nativeExampleProfile flow=nil visible=true parent={type=scrollingLayout id=nil name=nativeSettings profile=nil flow=vertical visible=true} state=false scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] AUTOMATION_SET enabled=true source=HELPER_MENU scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] NOTIFY Vorgewende ohne Strohablage: EIN
[VorgewendeOhneStrohablage 1.0.12.8] UNLOAD map_deleted
PASS 126 FULL MENU: worker-only display and state survive tab changes and reopening
[VorgewendeOhneStrohablage 1.0.12.8] SCRIPT_LOADED control=HELPER_MENU_ONLY stateMachine=true
[VorgewendeOhneStrohablage 1.0.12.8] GROUND_PROBE_INSTALLED read_only_result_observer; no_straw_created
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_HOOK AISettingsDialog.show; worker_tab_only; native endpoint marker; global switch
[VorgewendeOhneStrohablage 1.0.12.8] LOAD_MAP defaultEnabled=true control=HELPER_MENU_ONLY build=cropNativeFlag-128 mode=FIELD
[VorgewendeOhneStrohablage 1.0.12.8] POLICY NATIVE_FIELD: headland=chopper rows=swath; no_windrow=chopper; unknown_crop=no_enable; unknown_phase=no_new_decision
[VorgewendeOhneStrohablage 1.0.12.8] COMBINE_FOUND vehicle=combine.xml capable=true swathAvailable=true chopperAvailable=true swath=false server=true aiMethod=nil turnMethod=nil
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_OPEN vehicle=combine.xml root=true supported=true
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_MODE mode=WORKER source=live_selector:nativeModeSelector
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_VISUAL native_slider endpoint=0.2 travel=0.2 state=2 animation=stopped
[VorgewendeOhneStrohablage 1.0.12.8] HELPER_MENU_ADDED type=binary id=nil name=aswHelperMenuRow profile=nativeExampleProfile flow=nil visible=true parent={type=scrollingLayout id=nil name=nativeSettings profile=nil flow=vertical visible=true} state=true scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] AUTOMATION_SET enabled=false source=HELPER_MENU scope=GLOBAL
[VorgewendeOhneStrohablage 1.0.12.8] NOTIFY Vorgewende ohne Strohablage: AUS
[VorgewendeOhneStrohablage 1.0.12.8] STATE vehicle=combine.xml ai=false turning=nil swath=false aiSource=no_AIFieldWorker turnSource=unsupported
[VorgewendeOhneStrohablage 1.0.12.8] FLOW vehicle=combine.xml cause=CHOPPER_MODE setting=false automation=false ai=false turning=nil turnedOn=nil filling=nil crop=unknown fillType=nil hasWindrow=nil rawHasWindrow=nil controlCrop=unknown controlHasWindrow=nil cropSource=current_fill_unit cropDetail=missing_api windrowFillType=nil bufferLiters=nil litersToDrop=nil consumedLitersNotGround=nil groundProbe=true sampleMs=0.000 groundCalls=0 groundRequested=0.000 groundAccepted=nil groundUnknown=0 totalGroundAccepted=0.000 strawEffect=nil chopperEffect=nil animName=nil animTime=nil animPlaying=nil lastCuttersAreaTime=nil lastAreaZeroTime=nil
[VorgewendeOhneStrohablage 1.0.12.8] HEARTBEAT vehicles=1 combines=1 source=mission.vehicleSystem.vehicles enabled=false control=HELPER_MENU_ONLY hudDrawn=false mode=FIELD
[VorgewendeOhneStrohablage 1.0.12.8] UNLOAD map_deleted
PASS 126 FULL MENU: popup waits for gameplay and expires after five seconds
RESULT cases=65 passed=65 failed=0 assertions=2783
