SIGN IN SIGN UP

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