MCPcopy Create free account
hub / github.com/AnukarOP/claude-code-leaked / StatusLineInner

Function StatusLineInner

source code/components/StatusLine.tsx:140–320  ·  view source on GitHub ↗
({
  messagesRef,
  lastAssistantMessageId,
  vimMode
}: Props)

Source from the content-addressed store, hash-verified

138 return getLastAssistantMessage(messages)?.uuid ?? null;
139}
140function StatusLineInner({
141 messagesRef,
142 lastAssistantMessageId,
143 vimMode
144}: Props): React.ReactNode {
145 const abortControllerRef = useRef<AbortController | undefined>(undefined);
146 const permissionMode = useAppState(s => s.toolPermissionContext.mode);
147 const additionalWorkingDirectories = useAppState(s => s.toolPermissionContext.additionalWorkingDirectories);
148 const statusLineText = useAppState(s => s.statusLineText);
149 const setAppState = useSetAppState();
150 const settings = useSettings();
151 const {
152 addNotification
153 } = useNotifications();
154 // AppState-sourced model — same source as API requests. getMainLoopModel()
155 // re-reads settings.json on every call, so another session's /model write
156 // would leak into this session's statusline (anthropics/claude-code#37596).
157 const mainLoopModel = useMainLoopModel();
158
159 // Keep latest values in refs for stable callback access
160 const settingsRef = useRef(settings);
161 settingsRef.current = settings;
162 const vimModeRef = useRef(vimMode);
163 vimModeRef.current = vimMode;
164 const permissionModeRef = useRef(permissionMode);
165 permissionModeRef.current = permissionMode;
166 const addedDirsRef = useRef(additionalWorkingDirectories);
167 addedDirsRef.current = additionalWorkingDirectories;
168 const mainLoopModelRef = useRef(mainLoopModel);
169 mainLoopModelRef.current = mainLoopModel;
170
171 // Track previous state to detect changes and cache expensive calculations
172 const previousStateRef = useRef<{
173 messageId: string | null;
174 exceeds200kTokens: boolean;
175 permissionMode: PermissionMode;
176 vimMode: VimMode | undefined;
177 mainLoopModel: ModelName;
178 }>({
179 messageId: null,
180 exceeds200kTokens: false,
181 permissionMode,
182 vimMode,
183 mainLoopModel
184 });
185
186 // Debounce timer ref
187 const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);
188
189 // True when the next invocation should log its result (first run or after settings reload)
190 const logNextResultRef = useRef(true);
191
192 // Stable update function — reads latest values from refs
193 const doUpdate = useCallback(async () => {
194 // Cancel any in-flight requests
195 abortControllerRef.current?.abort();
196 const controller = new AbortController();
197 abortControllerRef.current = controller;

Callers

nothing calls this directly

Calls 14

useAppStateFunction · 0.85
useSetAppStateFunction · 0.85
useSettingsFunction · 0.85
useNotificationsFunction · 0.85
useMainLoopModelFunction · 0.85
executeStatusLineCommandFunction · 0.85
logEventFunction · 0.85
logForDebuggingFunction · 0.85

Tested by

no test coverage detected