mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-11 13:41:53 +00:00
Two resize fixes for a steadier TUI under aggressive terminal resizing. 1. Drag-resize flicker (useMainApp): `cols` was synced to `stdout.columns` synchronously on every 'resize' event. Each distinct width remounts the visible transcript rows (they're keyed on cols so yoga re-measures off live geometry), so a drag — which fires a burst of resize events — turned into a per-tick remount storm that flickers and stutters. Throttle the sync with a leading+trailing edge: the first event reflows immediately (stays responsive), the rest collapse to at most one reflow per RESIZE_COALESCE_MS (~30fps), and the trailing edge always applies the final width so the settled layout is exact. 2. Resize-burst heal coverage (#18449): the existing ink-resize test only exercised a single same-dimension event. Add two regressions that drive a rapid resize *burst* (wobbling dims that settle back to the start, and an isolated same-dimension event with no tree change) and assert the renderer converges to a clean erased repaint — screen erased, then content repainted after — rather than a partial diff over drifted cells. This also relaxes the pre-existing single-event assertion, which hard-coded the exact bytes `ESC[2J ESC[H`; the heal legitimately interposes `ESC[3J` (erase scrollback) on some recovery paths, so all three tests now assert the semantic invariant instead of a byte run. |
||
|---|---|---|
| .. | ||
| slash | ||
| createGatewayEventHandler.ts | ||
| createSlashHandler.ts | ||
| delegationStore.ts | ||
| gatewayContext.tsx | ||
| gatewayRecovery.ts | ||
| inputSelectionStore.ts | ||
| interfaces.ts | ||
| overlayStore.ts | ||
| petFlashStore.ts | ||
| scroll.ts | ||
| setupHandoff.ts | ||
| spawnHistoryStore.ts | ||
| turnController.ts | ||
| turnStore.ts | ||
| uiStore.ts | ||
| useComposerState.ts | ||
| useConfigSync.ts | ||
| useInputHandlers.ts | ||
| useLongRunToolCharms.ts | ||
| useMainApp.ts | ||
| usePet.ts | ||
| useSessionLifecycle.ts | ||
| useSubmission.ts | ||