Background
CodeRabbit review on #2424 surfaced a diagnostics gap in simulate-keyboard press-edge miss reporting (found while auditing the restructured skill docs; the docs were scoped to current behavior in that PR).
Problem
IsGameplayPressEdgeVisible (Packages/src/Editor/FirstPartyTools/SimulateKeyboard/KeyboardInputActionExecutor.cs) treats every InputUpdateType except Editor as a gameplay update, so Fixed and Manual updates can observe the press edge. However, RecordPressEdgeMissDiagnostics sets AnyDynamicUpdateObserved = true only for InputUpdateType.Dynamic.
On a project whose Input System update mode delivers gameplay input in Fixed or Manual updates, a missed edge therefore reports PressEdgeAnyDynamicUpdateObserved = false, which reads as "no gameplay input update ran" even though gameplay updates did run — a misleading diagnosis.
Proposed fix
Track whether any gameplay-visible update type (Dynamic, Fixed, or Manual — i.e. the same predicate as IsGameplayPressEdgeVisible) ran during the press window, and reflect that in the response contract. Since the current field name encodes Dynamic, this likely means either an additional field or a renamed field plus doc/skill updates (Skill/references/output.md).
Scope note
Deferred from #2424 because it changes runtime diagnostics behavior and the response contract, which is out of scope for a docs-restructure PR. The skill reference was updated there to state explicitly that the flag tracks Dynamic updates only.
Background
CodeRabbit review on #2424 surfaced a diagnostics gap in simulate-keyboard press-edge miss reporting (found while auditing the restructured skill docs; the docs were scoped to current behavior in that PR).
Problem
IsGameplayPressEdgeVisible(Packages/src/Editor/FirstPartyTools/SimulateKeyboard/KeyboardInputActionExecutor.cs) treats everyInputUpdateTypeexceptEditoras a gameplay update, soFixedandManualupdates can observe the press edge. However,RecordPressEdgeMissDiagnosticssetsAnyDynamicUpdateObserved = trueonly forInputUpdateType.Dynamic.On a project whose Input System update mode delivers gameplay input in
FixedorManualupdates, a missed edge therefore reportsPressEdgeAnyDynamicUpdateObserved = false, which reads as "no gameplay input update ran" even though gameplay updates did run — a misleading diagnosis.Proposed fix
Track whether any gameplay-visible update type (
Dynamic,Fixed, orManual— i.e. the same predicate asIsGameplayPressEdgeVisible) ran during the press window, and reflect that in the response contract. Since the current field name encodesDynamic, this likely means either an additional field or a renamed field plus doc/skill updates (Skill/references/output.md).Scope note
Deferred from #2424 because it changes runtime diagnostics behavior and the response contract, which is out of scope for a docs-restructure PR. The skill reference was updated there to state explicitly that the flag tracks
Dynamicupdates only.