mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
A ref synced from a nanostores atom via useEffect lags the atom by one render. Callbacks that read the ref instead of the atom get stale values — cancelRun sent session.interrupt to the wrong session (#66485), and steerPrompt/restoreToMessage/editMessage had closure-priority stale reads. The rule catches the three shapes of this antipattern: - useEffect(() => { ref.current = value }, [value]) - useEffect(() => { ref.current = value; ... }, [value]) - useEffect(() => { setMutableRef(ref, value) }, [value]) All 79 existing hits get eslint-disable-next-line with a comment. The legitimate ref writes (DOM instances, mount flags, request tokens, prev-value tracking, prop mirrors) stay suppressed; the 11 real bug sites will be fixed in the next commit so their suppressions can be removed. Rule is scoped to apps/desktop only — ui-tui and tests-js don't use nanostores and don't have this pattern. |
||
|---|---|---|
| .. | ||
| color.ts | ||
| constants.ts | ||
| geometry.ts | ||
| index.tsx | ||
| node-context-menu.tsx | ||
| render.ts | ||
| share-code.test.ts | ||
| share-code.ts | ||
| share-controls.test.tsx | ||
| share-controls.tsx | ||
| simulation.ts | ||
| star-map.tsx | ||
| text.ts | ||
| time-axis.ts | ||
| timeline.tsx | ||
| types.ts | ||