You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: memory/decisions.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -295,3 +295,10 @@ Type: decision
295
295
Event: Settings reported missing Tailscale CLI even when installed because GUI runtime PATH did not include shell-resolved aliases/paths.
296
296
Action: Added Tailscale binary candidate resolution (`PATH` first, then standard install paths including macOS app bundle path) before status checks.
297
297
Rule: Desktop CLI integrations must not rely on shell aliases or login-shell PATH alone; include deterministic install-path fallbacks.
298
+
299
+
## 2026-02-07 21:24
300
+
Context: Composer typing lag while non-active threads stream updates
301
+
Type: decision
302
+
Event: Thread status actions (`markProcessing`, `markUnread`, `markReviewing`) were creating new reducer state even when values were unchanged, and composer/sidebar surfaces lacked memo boundaries against unrelated parent re-renders.
303
+
Action: Added no-op guards in `useThreadsReducer` for unchanged thread-status transitions and wrapped `Composer`/`Sidebar` in `React.memo` to prevent unnecessary rerenders on unrelated app-state updates.
304
+
Rule: Streaming/event reducers must return previous state for no-op status transitions, and high-churn UI shells should be memoized to isolate typing/input responsiveness.
0 commit comments