input: Avoid facade callback reentry (#2703)
## Summary - pass `&mut App` directly to `InputState` validator and dynamic step callbacks - remove the reverse `InputState` entity update previously used to manufacture `Context<InputState>` - keep `set_value` and `replace_all` synchronous while eliminating facade reentry across validation and stepping paths - add regression coverage for `set_value`, `replace_all`, and dynamic step callbacks This intentionally changes the callback context from `&mut Context<InputState>` to `&mut App`. Inline closures generally require no source change; explicitly typed callback helpers must update their context parameter. ## Test Plan - `cargo test -p gpui-base input --lib` (99 passed) - `cargo check -p gpui-component` Co-authored-by: Codex <codex@openai.com>
J
Jason Lee committed
56f3d903eaef3b2504cf31518ed1ad69d80166ff
Parent: f433326
Committed by GitHub <noreply@github.com>
on 8/14/2026, 3:59:43 AM