Charlie Marsh
eceb3eeaf3
Cache TUI flex heights across frame passes ( #34348 )
...
## Why
Sizing, rendering, and cursor placement can query the same chat widget layout
multiple times in one frame, repeatedly measuring active transcript cells.
## What changed
- Build one chat widget renderable tree per frame and reuse it for sizing,
rendering, and cursor placement.
- Cache each flex child's desired height by width for the lifetime of that tree.
- Reuse the bottom pane's renderable directly instead of forwarding each
renderable operation through a wrapper.
## Testing
- Verify flex layouts measure a child once across frame passes and remeasure it
when the width changes.
- Verify a chat widget frame measures its active transcript cell once.
GitOrigin-RevId: 5ad1a6711f4011c699b5d002b13dc3319cb4db8e
2026-07-20 13:58:17 +00:00
..
2026-07-02 10:59:00 -07:00
2026-06-24 13:24:10 -07:00
2026-06-22 13:19:40 -07:00
2026-07-18 23:22:13 +00:00
2026-07-20 13:45:29 +00:00
2026-07-10 21:24:03 +00:00
2026-07-20 13:45:29 +00:00
2026-07-20 13:45:29 +00:00
2026-07-14 21:54:24 +00:00
2026-07-14 00:38:04 +00:00
2026-06-23 00:02:33 +00:00
2026-07-06 12:17:16 -07:00
2026-07-14 22:43:26 +00:00
2026-07-16 17:46:36 +00:00
2026-07-18 16:14:48 +00:00
2026-07-07 17:05:05 -07:00
2026-07-07 01:34:36 +00:00
2026-07-18 23:22:13 +00:00
2026-07-06 16:26:56 -07:00
2026-07-18 23:22:13 +00:00
2026-07-18 20:59:57 +00:00
2026-07-07 13:00:44 -07:00
2026-07-07 01:12:24 +00:00
2026-06-15 20:10:53 -07:00
2026-07-17 18:43:14 +00:00
2026-06-21 13:35:25 -07:00
2026-07-20 13:45:29 +00:00
2026-07-17 15:23:35 +00:00
2026-06-22 11:11:25 -07:00
2026-07-20 13:45:29 +00:00
2026-07-14 17:10:04 +00:00
2026-07-17 21:29:51 +00:00
2026-07-17 15:45:48 +00:00
2026-07-20 13:45:29 +00:00
2026-07-20 13:45:29 +00:00
2026-07-17 21:20:14 +00:00
2026-07-20 06:13:29 +00:00
2026-07-17 23:14:37 +00:00
2026-07-17 19:58:56 +00:00
2026-07-17 16:17:29 +00:00
2026-07-20 13:45:29 +00:00
2026-07-16 16:13:53 +00:00
2026-07-07 20:01:03 -04:00
2026-07-17 23:24:26 +00:00
2026-07-09 14:26:20 -07:00
2026-07-08 12:17:58 -04:00
2026-07-14 16:40:13 +00:00
2026-07-16 19:31:26 +00:00
2026-07-20 13:45:29 +00:00
2026-07-16 00:22:53 +00:00
2026-07-17 20:52:42 +00:00
2026-07-16 21:41:00 +00:00
2026-07-16 21:41:00 +00:00
2026-07-18 06:17:50 +00:00
2026-07-17 21:20:14 +00:00
2026-07-16 00:22:53 +00:00
2026-06-23 22:51:19 +01:00
2026-07-14 20:14:29 +00:00
2026-07-20 13:45:29 +00:00
2026-07-17 21:20:14 +00:00
2026-07-20 13:39:29 +00:00
2026-07-16 00:22:53 +00:00
2026-07-16 16:13:53 +00:00
2026-07-16 01:12:14 +00:00
2026-06-25 13:56:08 -07:00
2026-07-14 20:56:43 +00:00
2026-07-19 21:13:13 +00:00
2026-07-18 03:58:20 +00:00
2026-07-19 21:13:13 +00:00
2026-07-17 23:14:37 +00:00
2026-07-20 13:58:17 +00:00
2026-07-20 13:45:29 +00:00
2026-07-08 12:57:27 -07:00
2026-07-15 23:19:00 +00:00
2026-07-09 17:31:44 -07:00
2026-07-20 13:45:29 +00:00
2026-07-18 02:06:13 +00:00
2026-07-11 03:27:51 +00:00
2026-07-09 11:53:18 -07:00