GitHub check
256 KB of 597 KB loaded Download the full log (597 KB)
341 KB of earlier output not loaded
);
2026-10-24T05:20:08.8661449Z 241 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-24T05:20:08.8661585Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8661839Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-24T05:20:08.8661956Z 242 โ const acceptNativeEvent = useCallback(
2026-10-24T05:20:08.8662006Z โฐโโโโ
2026-10-24T05:20:08.8662417Z help: Missing dependencies can cause an effect to fire less often than it should. Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8662722Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8662725Z
2026-10-24T05:20:08.8662869Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8663010Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:29]
2026-10-24T05:20:08.8663135Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8663247Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8663364Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8663527Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8663582Z 163 โ });
2026-10-24T05:20:08.8663634Z โฐโโโโ
2026-10-24T05:20:08.8664089Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8664375Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8664380Z
2026-10-24T05:20:08.8664522Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8664661Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:29]
2026-10-24T05:20:08.8664783Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8664892Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8665005Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8665207Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8665262Z 163 โ });
2026-10-24T05:20:08.8665313Z โฐโโโโ
2026-10-24T05:20:08.8665810Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8666128Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8666132Z
2026-10-24T05:20:08.8666273Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8666413Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:164:23]
2026-10-24T05:20:08.8666469Z 163 โ });
2026-10-24T05:20:08.8666556Z 164 โ confirmedTokensRef.current = tokens;
2026-10-24T05:20:08.8666680Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-24T05:20:08.8666869Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T05:20:08.8666985Z ยท โฐโโ This value is a ref
2026-10-24T05:20:08.8667056Z 165 โ return JSON.stringify(
2026-10-24T05:20:08.8667107Z โฐโโโโ
2026-10-24T05:20:08.8667559Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8667843Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8667846Z
2026-10-24T05:20:08.8667991Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8668135Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:206:5]
2026-10-24T05:20:08.8668208Z 205 โ mostRecentEventCount,
2026-10-24T05:20:08.8668294Z 206 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8668400Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8668583Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8668640Z 207 โ );
2026-10-24T05:20:08.8668690Z โฐโโโโ
2026-10-24T05:20:08.8669138Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8669423Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8669428Z
2026-10-24T05:20:08.8669596Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8669734Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:212:5]
2026-10-24T05:20:08.8669804Z 211 โ mostRecentEventCount,
2026-10-24T05:20:08.8669890Z 212 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8669990Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8670174Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8670230Z 213 โ );
2026-10-24T05:20:08.8670283Z โฐโโโโ
2026-10-24T05:20:08.8670777Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8671148Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8671151Z
2026-10-24T05:20:08.8671335Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T05:20:08.8671473Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:197:6]
2026-10-24T05:20:08.8671592Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8671699Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8671809Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8672270Z ยท โฐโโ Missing dependency `confirmedTokensRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8672329Z 163 โ });
2026-10-24T05:20:08.8672417Z 164 โ confirmedTokensRef.current = tokens;
2026-10-24T05:20:08.8672486Z 165 โ return JSON.stringify(
2026-10-24T05:20:08.8672648Z 166 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-24T05:20:08.8672714Z 167 โ const record =
2026-10-24T05:20:08.8672791Z 168 โ token.type === "context"
2026-10-24T05:20:08.8672952Z 169 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-24T05:20:08.8673017Z 170 โ : undefined;
2026-10-24T05:20:08.8673130Z 171 โ const presentation = contextChipPresentation(
2026-10-24T05:20:08.8673240Z 172 โ token.type === "context" ? token.kind : token.type,
2026-10-24T05:20:08.8673304Z 173 โ record,
2026-10-24T05:20:08.8673362Z 174 โ );
2026-10-24T05:20:08.8673444Z 175 โ const icon = contextChipIcon(
2026-10-24T05:20:08.8673510Z 176 โ presentation,
2026-10-24T05:20:08.8673651Z 177 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-24T05:20:08.8673708Z 178 โ );
2026-10-24T05:20:08.8673770Z 179 โ return {
2026-10-24T05:20:08.8673839Z 180 โ type: token.type,
2026-10-24T05:20:08.8673912Z 181 โ source: token.source,
2026-10-24T05:20:08.8673984Z 182 โ start: token.start,
2026-10-24T05:20:08.8674049Z 183 โ end: token.end,
2026-10-24T05:20:08.8674199Z 184 โ accent: contextChipAccent(presentation.accent, theme, chipTextColor),
2026-10-24T05:20:08.8674264Z 185 โ label:
2026-10-24T05:20:08.8674340Z 186 โ token.type === "skill"
2026-10-24T05:20:08.8674447Z 187 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-24T05:20:08.8674527Z 188 โ : token.type === "context"
2026-10-24T05:20:08.8674762Z 189 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-24T05:20:08.8674848Z 190 โ : basename(token.value),
2026-10-24T05:20:08.8674990Z 191 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-24T05:20:08.8675080Z 192 โ iconUri: contextChipIconUri(icon),
2026-10-24T05:20:08.8675166Z 193 โ tintsIcon: icon.kind === "chip",
2026-10-24T05:20:08.8675224Z 194 โ };
2026-10-24T05:20:08.8675348Z 195 โ }),
2026-10-24T05:20:08.8675441Z 196 โ );
2026-10-24T05:20:08.8675571Z 197 โ }, [props.value, props.context, skillLabels, theme, chipTextColor]);
2026-10-24T05:20:08.8675724Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8675928Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8676063Z 198 โ // Every render resolves against the snapshot history, so a render whose
2026-10-24T05:20:08.8676115Z โฐโโโโ
2026-10-24T05:20:08.8676317Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T05:20:08.8676624Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8676632Z
2026-10-24T05:20:08.8676817Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T05:20:08.8676956Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:259:5]
2026-10-24T05:20:08.8677085Z 251 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-24T05:20:08.8677185Z 252 โ nativeEventSnapshotsRef.current.push({
2026-10-24T05:20:08.8677275Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8677723Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8677812Z 253 โ eventCount: acknowledgedEventCount,
2026-10-24T05:20:08.8677878Z 254 โ value,
2026-10-24T05:20:08.8677959Z 255 โ selection: nextSelection,
2026-10-24T05:20:08.8678015Z 256 โ });
2026-10-24T05:20:08.8678097Z 257 โ return acknowledgedEventCount;
2026-10-24T05:20:08.8678152Z 258 โ },
2026-10-24T05:20:08.8678206Z 259 โ [],
2026-10-24T05:20:08.8678274Z ยท โโฌ
2026-10-24T05:20:08.8678452Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8678506Z 260 โ );
2026-10-24T05:20:08.8678556Z โฐโโโโ
2026-10-24T05:20:08.8678758Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T05:20:08.8679062Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8679070Z
2026-10-24T05:20:08.8679326Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8679489Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:215:7]
2026-10-24T05:20:08.8679542Z 211 โ };
2026-10-24T05:20:08.8679644Z 212 โ useEffect(() => {
2026-10-24T05:20:08.8679715Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8679844Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8680015Z 213 โ const inserted = ownerKey ? readComposerDraftSelection(ownerKey, draftMessage) : null;
2026-10-24T05:20:08.8680078Z 214 โ if (inserted) {
2026-10-24T05:20:08.8680153Z 215 โ setSelection((current) =>
2026-10-24T05:20:08.8680232Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8680450Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8680646Z 216 โ current.start === inserted.start && current.end === inserted.end ? current : inserted,
2026-10-24T05:20:08.8680696Z โฐโโโโ
2026-10-24T05:20:08.8681281Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8681595Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8681599Z
2026-10-24T05:20:08.8681854Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8682016Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:296:7]
2026-10-24T05:20:08.8682091Z 284 โ }, [hasWorkspaceSnapshot]);
2026-10-24T05:20:08.8682156Z 285 โ useEffect(() => {
2026-10-24T05:20:08.8682224Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8682351Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8682496Z 286 โ if (!environmentId || !projectCwd || !selectedProviderInstanceId) return;
2026-10-24T05:20:08.8682642Z 287 โ const key = `${environmentId}:${selectedProviderInstanceId}:${projectCwd}`;
2026-10-24T05:20:08.8682711Z 288 โ const now = Date.now();
2026-10-24T05:20:08.8682825Z 289 โ const lastRequest = workspaceRefreshKeyRef.current;
2026-10-24T05:20:08.8682887Z 290 โ if (
2026-10-24T05:20:08.8682966Z 291 โ lastRequest?.key === key &&
2026-10-24T05:20:08.8683101Z 292 โ now - lastRequest.requestedAt < PROVIDER_WORKSPACE_SNAPSHOT_TTL_MS
2026-10-24T05:20:08.8683155Z 293 โ )
2026-10-24T05:20:08.8683215Z 294 โ return;
2026-10-24T05:20:08.8683388Z 295 โ if (hasCurrentProviderWorkspaceSnapshot(selectedProviderStatus, projectCwd, now)) {
2026-10-24T05:20:08.8683472Z 296 โ setWorkspaceRefreshRetry(null);
2026-10-24T05:20:08.8683566Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8683739Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8683799Z 297 โ return;
2026-10-24T05:20:08.8683849Z โฐโโโโ
2026-10-24T05:20:08.8684438Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8684753Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8684756Z
2026-10-24T05:20:08.8684953Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8685113Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:326:5]
2026-10-24T05:20:08.8685167Z 325 โ }, [
2026-10-24T05:20:08.8685236Z 326 โ draftMessage,
2026-10-24T05:20:08.8685312Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8685503Z ยท โฐโโ Unnecessary dependency `draftMessage`
2026-10-24T05:20:08.8685602Z 327 โ environmentId,
2026-10-24T05:20:08.8685654Z โฐโโโโ
2026-10-24T05:20:08.8685940Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8686241Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8686244Z
2026-10-24T05:20:08.8686497Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8686667Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:123:7]
2026-10-24T05:20:08.8686721Z 118 โ
2026-10-24T05:20:08.8686790Z 119 โ useEffect(() => {
2026-10-24T05:20:08.8686860Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8686988Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8687070Z 120 โ if (orientationSettled) return;
2026-10-24T05:20:08.8687180Z 121 โ const orientation = getNativeShowcaseOrientation();
2026-10-24T05:20:08.8687252Z 122 โ if (orientation === null) {
2026-10-24T05:20:08.8687333Z 123 โ setOrientationSettled(true);
2026-10-24T05:20:08.8687421Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8687590Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8687647Z 124 โ return;
2026-10-24T05:20:08.8687700Z โฐโโโโ
2026-10-24T05:20:08.8688296Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8688612Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8688615Z
2026-10-24T05:20:08.8688867Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8689033Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:304:7]
2026-10-24T05:20:08.8689088Z 292 โ
2026-10-24T05:20:08.8689151Z 293 โ useEffect(() => {
2026-10-24T05:20:08.8689221Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8689395Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8689482Z 294 โ if (
2026-10-24T05:20:08.8689548Z 295 โ scene === null ||
2026-10-24T05:20:08.8689636Z 296 โ requestedScene === null ||
2026-10-24T05:20:08.8689739Z 297 โ scene !== requestedScene ||
2026-10-24T05:20:08.8689803Z 298 โ !hasFixture ||
2026-10-24T05:20:08.8689875Z 299 โ !orientationSettled ||
2026-10-24T05:20:08.8689941Z 300 โ !themeApplied ||
2026-10-24T05:20:08.8690055Z 301 โ (scene === "agent-activity" && !agentActivityStaged) ||
2026-10-24T05:20:08.8690187Z 302 โ !isShowcaseNativeContentReady({ scene, themeId, renderSignal })
2026-10-24T05:20:08.8690242Z 303 โ ) {
2026-10-24T05:20:08.8690309Z 304 โ setReadyScene(null);
2026-10-24T05:20:08.8690388Z ยท โโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8690561Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8690623Z 305 โ return;
2026-10-24T05:20:08.8690673Z โฐโโโโ
2026-10-24T05:20:08.8691252Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8691568Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8691570Z
2026-10-24T05:20:08.8691839Z โ eslint(no-unused-vars): Variable 'lastOutcome' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8692008Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:128:9]
2026-10-24T05:20:08.8692075Z 127 โ let cancelled = false;
2026-10-24T05:20:08.8692166Z 128 โ let lastOutcome: string | null = null;
2026-10-24T05:20:08.8692245Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8692378Z ยท โฐโโ 'lastOutcome' is declared here
2026-10-24T05:20:08.8692551Z 129 โ void retryShowcaseOperation(async () => applyNativeShowcaseOrientation(orientation), {
2026-10-24T05:20:08.8692601Z โฐโโโโ
2026-10-24T05:20:08.8692705Z help: Consider removing this declaration.
2026-10-24T05:20:08.8692708Z
2026-10-24T05:20:08.8692959Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8693134Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:329:7]
2026-10-24T05:20:08.8693189Z 324 โ };
2026-10-24T05:20:08.8693253Z 325 โ useEffect(() => {
2026-10-24T05:20:08.8693323Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8693449Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8693545Z 326 โ if (!guidesEnabled && section === "guide") {
2026-10-24T05:20:08.8693638Z 327 โ requestedSection.current = "overview";
2026-10-24T05:20:08.8693801Z 328 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-24T05:20:08.8693873Z 329 โ setSection("overview");
2026-10-24T05:20:08.8693945Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8694162Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8694249Z 330 โ }
2026-10-24T05:20:08.8694299Z โฐโโโโ
2026-10-24T05:20:08.8694885Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8695200Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8695202Z
2026-10-24T05:20:08.8695402Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T05:20:08.8695570Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:331:6]
2026-10-24T05:20:08.8695670Z 326 โ if (!guidesEnabled && section === "guide") {
2026-10-24T05:20:08.8695765Z 327 โ requestedSection.current = "overview";
2026-10-24T05:20:08.8695845Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T05:20:08.8696284Z ยท โฐโโ Missing dependency `requestedSection`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8696445Z 328 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-24T05:20:08.8696591Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8697080Z ยท โ โฐโโ Missing dependency `scrollOffsets`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8697517Z ยท โฐโโ Missing dependency `currentScrollOffset`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8697590Z 329 โ setSection("overview");
2026-10-24T05:20:08.8697644Z 330 โ }
2026-10-24T05:20:08.8697738Z 331 โ }, [guidesEnabled, section, insets.top]);
2026-10-24T05:20:08.8697850Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8698038Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8698128Z 332 โ const tabContent = activityContent;
2026-10-24T05:20:08.8698182Z โฐโโโโ
2026-10-24T05:20:08.8698345Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T05:20:08.8698651Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8698653Z
2026-10-24T05:20:08.8698853Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T05:20:08.8699020Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:868:6]
2026-10-24T05:20:08.8699079Z 851 โ if (
2026-10-24T05:20:08.8699195Z 852 โ lastSelection.current.path === route.params.path &&
2026-10-24T05:20:08.8699273Z ยท โโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8699833Z ยท โฐโโ Missing dependency `lastSelection`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8699987Z 853 โ lastSelection.current.id === route.params.fileSelectionId
2026-10-24T05:20:08.8700041Z 854 โ )
2026-10-24T05:20:08.8700101Z 855 โ return;
2026-10-24T05:20:08.8700271Z 856 โ lastSelection.current = { path: route.params.path, id: route.params.fileSelectionId };
2026-10-24T05:20:08.8700403Z 857 โ if (route.params.focus) navigation.setParams({ focus: undefined });
2026-10-24T05:20:08.8700489Z 858 โ setJumpPath(route.params.path);
2026-10-24T05:20:08.8700559Z 859 โ setSelectedRowId(null);
2026-10-24T05:20:08.8700636Z 860 โ jumpStarted.current = false;
2026-10-24T05:20:08.8700783Z 861 โ const file = data.files.find((entry) => entry.path === route.params.path);
2026-10-24T05:20:08.8700880Z 862 โ if (!file || !nativeView.current) return;
2026-10-24T05:20:08.8700967Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8701393Z ยท โฐโโ Missing dependency `nativeView`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8701515Z 863 โ setCollapsedIds((ids) => ids.filter((id) => id !== file.id));
2026-10-24T05:20:08.8701593Z 864 โ jumpStarted.current = true;
2026-10-24T05:20:08.8701727Z 865 โ void nativeView.current.scrollToFile(file.id, false).catch(() => {
2026-10-24T05:20:08.8701807Z 866 โ jumpStarted.current = false;
2026-10-24T05:20:08.8701861Z 867 โ });
2026-10-24T05:20:08.8702061Z 868 โ }, [route.params.path, route.params.fileSelectionId, route.params.focus, data.files, navigation]);
2026-10-24T05:20:08.8702268Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8702485Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8702593Z 869 โ const appliedFilter = useRef(filter.hideTestFiles);
2026-10-24T05:20:08.8702645Z โฐโโโโ
2026-10-24T05:20:08.8702809Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T05:20:08.8703112Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8703115Z
2026-10-24T05:20:08.8703318Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T05:20:08.8703454Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:231:6]
2026-10-24T05:20:08.8703614Z 227 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-24T05:20:08.8703702Z 228 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8703791Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8704241Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8704314Z 229 โ mostRecentEventCount,
2026-10-24T05:20:08.8704369Z 230 โ );
2026-10-24T05:20:08.8704548Z 231 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-24T05:20:08.8704712Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8704907Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8704988Z 232 โ const assumedValue = props.value;
2026-10-24T05:20:08.8705038Z โฐโโโโ
2026-10-24T05:20:08.8705201Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T05:20:08.8705502Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8705505Z
2026-10-24T05:20:08.8705712Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T05:20:08.8705850Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:239:7]
2026-10-24T05:20:08.8705994Z 238 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-24T05:20:08.8706080Z 239 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8706170Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8706617Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8706689Z 240 โ controlledEventCount,
2026-10-24T05:20:08.8706751Z 241 โ assumedValue,
2026-10-24T05:20:08.8706804Z 242 โ );
2026-10-24T05:20:08.8706959Z 243 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-24T05:20:08.8707100Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8707304Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-24T05:20:08.8707391Z 244 โ const acceptNativeEvent = useCallback(
2026-10-24T05:20:08.8707443Z โฐโโโโ
2026-10-24T05:20:08.8707854Z help: Missing dependencies can cause an effect to fire less often than it should. Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8708161Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8708163Z
2026-10-24T05:20:08.8708353Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8708518Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:29]
2026-10-24T05:20:08.8708640Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8708749Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8708863Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8709025Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8709080Z 165 โ });
2026-10-24T05:20:08.8709131Z โฐโโโโ
2026-10-24T05:20:08.8709600Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8709911Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8709913Z
2026-10-24T05:20:08.8710057Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8710190Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:29]
2026-10-24T05:20:08.8710309Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8710417Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8710531Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8710732Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8710791Z 165 โ });
2026-10-24T05:20:08.8710843Z โฐโโโโ
2026-10-24T05:20:08.8711339Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8711628Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8711631Z
2026-10-24T05:20:08.8711773Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8711904Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:166:23]
2026-10-24T05:20:08.8711957Z 165 โ });
2026-10-24T05:20:08.8712045Z 166 โ confirmedTokensRef.current = tokens;
2026-10-24T05:20:08.8712171Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-24T05:20:08.8712356Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T05:20:08.8712473Z ยท โฐโโ This value is a ref
2026-10-24T05:20:08.8712573Z 167 โ return JSON.stringify(
2026-10-24T05:20:08.8712633Z โฐโโโโ
2026-10-24T05:20:08.8713088Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8713368Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8713439Z
2026-10-24T05:20:08.8713617Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8713749Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:208:5]
2026-10-24T05:20:08.8713818Z 207 โ mostRecentEventCount,
2026-10-24T05:20:08.8713905Z 208 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8714008Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8714191Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8714245Z 209 โ );
2026-10-24T05:20:08.8714296Z โฐโโโโ
2026-10-24T05:20:08.8714754Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8715039Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8715042Z
2026-10-24T05:20:08.8715180Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8715311Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:214:5]
2026-10-24T05:20:08.8715379Z 213 โ mostRecentEventCount,
2026-10-24T05:20:08.8715464Z 214 โ nativeEventSnapshotsRef.current,
2026-10-24T05:20:08.8715568Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8715750Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8715803Z 215 โ );
2026-10-24T05:20:08.8715858Z โฐโโโโ
2026-10-24T05:20:08.8716310Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8716592Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8716594Z
2026-10-24T05:20:08.8716777Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T05:20:08.8716908Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:199:6]
2026-10-24T05:20:08.8717030Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T05:20:08.8717139Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T05:20:08.8717253Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8717705Z ยท โฐโโ Missing dependency `confirmedTokensRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8717761Z 165 โ });
2026-10-24T05:20:08.8717849Z 166 โ confirmedTokensRef.current = tokens;
2026-10-24T05:20:08.8717917Z 167 โ return JSON.stringify(
2026-10-24T05:20:08.8718076Z 168 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-24T05:20:08.8718143Z 169 โ const record =
2026-10-24T05:20:08.8718223Z 170 โ token.type === "context"
2026-10-24T05:20:08.8718433Z 171 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-24T05:20:08.8718526Z 172 โ : undefined;
2026-10-24T05:20:08.8718632Z 173 โ const presentation = contextChipPresentation(
2026-10-24T05:20:08.8718741Z 174 โ token.type === "context" ? token.kind : token.type,
2026-10-24T05:20:08.8718804Z 175 โ record,
2026-10-24T05:20:08.8718862Z 176 โ );
2026-10-24T05:20:08.8718943Z 177 โ const icon = contextChipIcon(
2026-10-24T05:20:08.8719009Z 178 โ presentation,
2026-10-24T05:20:08.8719149Z 179 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-24T05:20:08.8719206Z 180 โ );
2026-10-24T05:20:08.8719267Z 181 โ return {
2026-10-24T05:20:08.8719336Z 182 โ type: token.type,
2026-10-24T05:20:08.8719409Z 183 โ source: token.source,
2026-10-24T05:20:08.8719486Z 184 โ start: token.start,
2026-10-24T05:20:08.8719599Z 185 โ end: token.end,
2026-10-24T05:20:08.8719759Z 186 โ accent: contextChipAccent(presentation.accent, theme, chipTextColor),
2026-10-24T05:20:08.8719819Z 187 โ label:
2026-10-24T05:20:08.8719894Z 188 โ token.type === "skill"
2026-10-24T05:20:08.8719999Z 189 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-24T05:20:08.8720080Z 190 โ : token.type === "context"
2026-10-24T05:20:08.8720309Z 191 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-24T05:20:08.8720389Z 192 โ : basename(token.value),
2026-10-24T05:20:08.8720529Z 193 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-24T05:20:08.8720620Z 194 โ iconUri: contextChipIconUri(icon),
2026-10-24T05:20:08.8720712Z 195 โ tintsIcon: icon.kind === "chip",
2026-10-24T05:20:08.8720771Z 196 โ };
2026-10-24T05:20:08.8720829Z 197 โ }),
2026-10-24T05:20:08.8720884Z 198 โ );
2026-10-24T05:20:08.8721014Z 199 โ }, [props.value, props.context, skillLabels, theme, chipTextColor]);
2026-10-24T05:20:08.8721165Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8721366Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8721504Z 200 โ // Every render resolves against the snapshot history, so a render whose
2026-10-24T05:20:08.8721555Z โฐโโโโ
2026-10-24T05:20:08.8721756Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T05:20:08.8722068Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8722073Z
2026-10-24T05:20:08.8722256Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T05:20:08.8722390Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:261:5]
2026-10-24T05:20:08.8722520Z 253 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-24T05:20:08.8722619Z 254 โ nativeEventSnapshotsRef.current.push({
2026-10-24T05:20:08.8722709Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8723211Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T05:20:08.8723331Z 255 โ eventCount: acknowledgedEventCount,
2026-10-24T05:20:08.8723391Z 256 โ value,
2026-10-24T05:20:08.8723468Z 257 โ selection: nextSelection,
2026-10-24T05:20:08.8723525Z 258 โ });
2026-10-24T05:20:08.8723608Z 259 โ return acknowledgedEventCount;
2026-10-24T05:20:08.8723661Z 260 โ },
2026-10-24T05:20:08.8723716Z 261 โ [],
2026-10-24T05:20:08.8723784Z ยท โโฌ
2026-10-24T05:20:08.8723961Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T05:20:08.8724015Z 262 โ );
2026-10-24T05:20:08.8724067Z โฐโโโโ
2026-10-24T05:20:08.8724271Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T05:20:08.8724582Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8724587Z
2026-10-24T05:20:08.8724781Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8724911Z โญโ[apps/mobile/src/components/ComposerEditor.tsx:82:6]
2026-10-24T05:20:08.8724967Z 81 โ },
2026-10-24T05:20:08.8725029Z 82 โ [draftKey],
2026-10-24T05:20:08.8725099Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8725235Z ยท โฐโโ Unnecessary dependency `draftKey`
2026-10-24T05:20:08.8725290Z 83 โ );
2026-10-24T05:20:08.8725342Z โฐโโโโ
2026-10-24T05:20:08.8725634Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8725937Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8725940Z
2026-10-24T05:20:08.8726120Z โ react(static-components): Cannot create components during render
2026-10-24T05:20:08.8726280Z โญโ[apps/mobile/src/features/terminal/NativeTerminalSurface.tsx:234:10]
2026-10-24T05:20:08.8726366Z 196 โ const { onInput, onResize } = props;
2026-10-24T05:20:08.8726510Z 197 โ const NativeTerminalSurfaceView = resolveNativeTerminalSurfaceView();
2026-10-24T05:20:08.8726640Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8726872Z ยท โฐโโ The component is created during render here
2026-10-24T05:20:08.8727028Z 198 โ const hasNativeSurface = Boolean(NativeTerminalSurfaceView);
2026-10-24T05:20:08.8727081Z 199 โ
2026-10-24T05:20:08.8727147Z 200 โ useEffect(() => {
2026-10-24T05:20:08.8727232Z 201 โ terminalDebugLog("native:surface", {
2026-10-24T05:20:08.8727314Z 202 โ terminalKey: props.terminalKey,
2026-10-24T05:20:08.8727390Z 203 โ native: hasNativeSurface,
2026-10-24T05:20:08.8727522Z 204 โ hardwareKeyRevision: getNativeTerminalHardwareKeyRevision(),
2026-10-24T05:20:08.8727604Z 205 โ bufferLen: props.buffer.length,
2026-10-24T05:20:08.8727681Z 206 โ isRunning: props.isRunning,
2026-10-24T05:20:08.8727737Z 207 โ });
2026-10-24T05:20:08.8727895Z 208 โ }, [hasNativeSurface, props.buffer.length, props.isRunning, props.terminalKey]);
2026-10-24T05:20:08.8727985Z 209 โ const handleNativeInput = useCallback(
2026-10-24T05:20:08.8728099Z 210 โ (event: NativeSyntheticEvent<TerminalInputEvent>) => {
2026-10-24T05:20:08.8728196Z 211 โ if (!props.isRunning || props.readOnly) {
2026-10-24T05:20:08.8728258Z 212 โ return;
2026-10-24T05:20:08.8728313Z 213 โ }
2026-10-24T05:20:08.8728400Z 214 โ terminalDebugLog("native:onInput", {
2026-10-24T05:20:08.8728547Z 215 โ codes: Array.from(event.nativeEvent.data, (char) => char.codePointAt(0)),
2026-10-24T05:20:08.8728604Z 216 โ });
2026-10-24T05:20:08.8728689Z 217 โ onInput(event.nativeEvent.data);
2026-10-24T05:20:08.8728742Z 218 โ },
2026-10-24T05:20:08.8728840Z 219 โ [onInput, props.isRunning, props.readOnly],
2026-10-24T05:20:08.8728893Z 220 โ );
2026-10-24T05:20:08.8728980Z 221 โ const handleNativeResize = useCallback(
2026-10-24T05:20:08.8729099Z 222 โ (event: NativeSyntheticEvent<TerminalResizeEvent>) => {
2026-10-24T05:20:08.8729162Z 223 โ onResize({
2026-10-24T05:20:08.8729244Z 224 โ cols: event.nativeEvent.cols,
2026-10-24T05:20:08.8729325Z 225 โ rows: event.nativeEvent.rows,
2026-10-24T05:20:08.8729380Z 226 โ });
2026-10-24T05:20:08.8729437Z 227 โ },
2026-10-24T05:20:08.8729499Z 228 โ [onResize],
2026-10-24T05:20:08.8729562Z 229 โ );
2026-10-24T05:20:08.8729613Z 230 โ
2026-10-24T05:20:08.8729723Z 231 โ if (NativeTerminalSurfaceView) {
2026-10-24T05:20:08.8729781Z 232 โ return (
2026-10-24T05:20:08.8729856Z 233 โ <View style={props.style}>
2026-10-24T05:20:08.8729937Z 234 โ <NativeTerminalSurfaceView
2026-10-24T05:20:08.8730043Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8730204Z ยท โฐโโ This component is created during render
2026-10-24T05:20:08.8730298Z 235 โ appearanceScheme={themeAppearance}
2026-10-24T05:20:08.8730351Z โฐโโโโ
2026-10-24T05:20:08.8730597Z help: Components created during render will reset their state each time they are created. Declare components outside of render
2026-10-24T05:20:08.8730907Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-24T05:20:08.8730909Z
2026-10-24T05:20:08.8731163Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8731318Z โญโ[apps/mobile/src/features/terminal/terminalLaunchContext.ts:117:5]
2026-10-24T05:20:08.8731484Z 112 โ const [entry, setEntry] = useState(() => ({ key: input.targetKey, location: candidate }));
2026-10-24T05:20:08.8731600Z 113 โ useEffect(() => {
2026-10-24T05:20:08.8731700Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8731827Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8731988Z 114 โ if (entry.key === input.targetKey && (entry.location !== null || candidate === null)) {
2026-10-24T05:20:08.8732048Z 115 โ return;
2026-10-24T05:20:08.8732102Z 116 โ }
2026-10-24T05:20:08.8732216Z 117 โ setEntry({ key: input.targetKey, location: candidate });
2026-10-24T05:20:08.8732291Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8732457Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8732578Z 118 โ }, [candidate, entry.key, entry.location, input.targetKey]);
2026-10-24T05:20:08.8732627Z โฐโโโโ
2026-10-24T05:20:08.8733221Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8733539Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8733542Z
2026-10-24T05:20:08.8733733Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T05:20:08.8733889Z โญโ[apps/mobile/src/features/terminal/TerminalContextSheet.tsx:72:15]
2026-10-24T05:20:08.8733953Z 71 โ <Pressable
2026-10-24T05:20:08.8734019Z 72 โ key={index}
2026-10-24T05:20:08.8734107Z ยท โโโโโโโโโโโ
2026-10-24T05:20:08.8734192Z 73 โ accessibilityRole="button"
2026-10-24T05:20:08.8734242Z โฐโโโโ
2026-10-24T05:20:08.8734387Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T05:20:08.8734390Z
2026-10-24T05:20:08.8734642Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8734772Z โญโ[apps/mobile/src/components/ProjectFavicon.tsx:172:5]
2026-10-24T05:20:08.8734956Z 167 โ const [activeFaviconRequest, setActiveFaviconRequest] = useState<typeof faviconRequest>(null);
2026-10-24T05:20:08.8735026Z 168 โ useLayoutEffect(() => {
2026-10-24T05:20:08.8735103Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T05:20:08.8735239Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8735325Z 169 โ if (faviconRequest === null) return;
2026-10-24T05:20:08.8735378Z 170 โ
2026-10-24T05:20:08.8735509Z 171 โ const endRequest = beginProjectFaviconRequest(faviconRequest);
2026-10-24T05:20:08.8735605Z 172 โ setActiveFaviconRequest(faviconRequest);
2026-10-24T05:20:08.8735693Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8735861Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8735929Z 173 โ return endRequest;
2026-10-24T05:20:08.8735981Z โฐโโโโ
2026-10-24T05:20:08.8736610Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8736958Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8736960Z
2026-10-24T05:20:08.8737211Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8737343Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:60:5]
2026-10-24T05:20:08.8737396Z 57 โ
2026-10-24T05:20:08.8737458Z 58 โ useEffect(() => {
2026-10-24T05:20:08.8737529Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8737657Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8737751Z 59 โ const controller = new AbortController();
2026-10-24T05:20:08.8737826Z 60 โ setLoadState("pending");
2026-10-24T05:20:08.8737903Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8738067Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8738224Z 61 โ // A renewed signature is used on Retry, not as a reason to reset the native player.
2026-10-24T05:20:08.8738274Z โฐโโโโ
2026-10-24T05:20:08.8738861Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8739178Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8739183Z
2026-10-24T05:20:08.8739383Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8739517Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:71:7]
2026-10-24T05:20:08.8739606Z 70 โ return () => controller.abort();
2026-10-24T05:20:08.8739727Z 71 โ }, [player, props.playRequested, attempt]);
2026-10-24T05:20:08.8739897Z ยท โโโโฌโโ โโโโโโโโโโฌโโโโโโโโโ โโโโฌโโโ
2026-10-24T05:20:08.8742181Z ยท โ โ โฐโโ Unnecessary dependency `attempt`
2026-10-24T05:20:08.8742397Z ยท โ โฐโโ Unnecessary dependency `props.playRequested`
2026-10-24T05:20:08.8742544Z ยท โฐโโ Unnecessary dependency `player_0`
2026-10-24T05:20:08.8742597Z 72 โ
2026-10-24T05:20:08.8742647Z โฐโโโโ
2026-10-24T05:20:08.8742935Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8743240Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8743243Z
2026-10-24T05:20:08.8743497Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8743642Z โญโ[apps/mobile/src/components/VideoPreviewModal.ios.tsx:63:55]
2026-10-24T05:20:08.8743700Z 61 โ }, []);
2026-10-24T05:20:08.8743831Z 62 โ useEffect(() => {
2026-10-24T05:20:08.8743937Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8744062Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8744208Z 63 โ if (playbackUrl === null && resolvedUrl !== null) setPlaybackUrl(resolvedUrl);
2026-10-24T05:20:08.8744328Z ยท โโโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8744529Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8744608Z 64 โ }, [playbackUrl, resolvedUrl]);
2026-10-24T05:20:08.8744659Z โฐโโโโ
2026-10-24T05:20:08.8745243Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8745561Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8745563Z
2026-10-24T05:20:08.8745778Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-24T05:20:08.8745906Z โญโ[scripts/lib/cli-external-packages.test.ts:114:11]
2026-10-24T05:20:08.8745975Z 113 โ const declared = {
2026-10-24T05:20:08.8746066Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-24T05:20:08.8746176Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8746283Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-24T05:20:08.8746337Z โฐโโโโ
2026-10-24T05:20:08.8746595Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-24T05:20:08.8746597Z
2026-10-24T05:20:08.8746812Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-24T05:20:08.8746937Z โญโ[scripts/lib/cli-external-packages.test.ts:115:11]
2026-10-24T05:20:08.8747028Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-24T05:20:08.8747129Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-24T05:20:08.8747249Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8747343Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-24T05:20:08.8747394Z โฐโโโโ
2026-10-24T05:20:08.8747657Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-24T05:20:08.8747661Z
2026-10-24T05:20:08.8747872Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-24T05:20:08.8747997Z โญโ[scripts/lib/cli-external-packages.test.ts:116:11]
2026-10-24T05:20:08.8748096Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-24T05:20:08.8748190Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-24T05:20:08.8748302Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8748363Z 117 โ };
2026-10-24T05:20:08.8748413Z โฐโโโโ
2026-10-24T05:20:08.8748718Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-24T05:20:08.8748753Z
2026-10-24T05:20:08.8748983Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-24T05:20:08.8749143Z โญโ[apps/web/src/components/pullRequest/pullRequestList.logic.ts:265:9]
2026-10-24T05:20:08.8749203Z 264 โ ): boolean {
2026-10-24T05:20:08.8749354Z 265 โ const labels = entry.labels.map((label) => label.name.trim().toLowerCase());
2026-10-24T05:20:08.8749516Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8749728Z 266 โ const holds = (label: string) => labels.includes(label.trim().toLowerCase());
2026-10-24T05:20:08.8749802Z โฐโโโโ
2026-10-24T05:20:08.8749879Z help: Switch to `Set`
2026-10-24T05:20:08.8749881Z
2026-10-24T05:20:08.8750086Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8750219Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:533:25]
2026-10-24T05:20:08.8750347Z 532 โ // range) the boundary string is identical and the chain would die.
2026-10-24T05:20:08.8750437Z 533 โ }, [nextSnoozeWakeAt, snoozeWakeTick]);
2026-10-24T05:20:08.8750535Z ยท โโโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8750699Z ยท โฐโโ Unnecessary dependency `snoozeWakeTick`
2026-10-24T05:20:08.8750833Z 534 โ const v2SearchQuery = props.searchQuery.trim().toLocaleLowerCase();
2026-10-24T05:20:08.8750937Z โฐโโโโ
2026-10-24T05:20:08.8751225Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8751534Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8751539Z
2026-10-24T05:20:08.8751703Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8751828Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:524:53]
2026-10-24T05:20:08.8751914Z 523 โ if (Number.isNaN(wakeAtMs)) return;
2026-10-24T05:20:08.8752069Z 524 โ const delayMs = Math.min(Math.max(0, wakeAtMs - Date.now()) + 50, 2_147_483_647);
2026-10-24T05:20:08.8752187Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8752349Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8752492Z 525 โ const id = setTimeout(() => {
2026-10-24T05:20:08.8752580Z โฐโโโโ
2026-10-24T05:20:08.8752859Z help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8753145Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8753151Z
2026-10-24T05:20:08.8753426Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-24T05:20:08.8753582Z โญโ[apps/web/src/components/settings/SettingInheritance.tsx:163:24]
2026-10-24T05:20:08.8753639Z 162 โ keys,
2026-10-24T05:20:08.8753710Z 163 โ overridingProjects = [],
2026-10-24T05:20:08.8753793Z ยท โโ
2026-10-24T05:20:08.8753863Z 164 โ onClearOverrides,
2026-10-24T05:20:08.8753914Z โฐโโโโ
2026-10-24T05:20:08.8754225Z help: Default values are re-created on every render and break referential equality, causing unnecessary re-renders. Move the value out of the component or memoize it.
2026-10-24T05:20:08.8754227Z
2026-10-24T05:20:08.8754478Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8754648Z โญโ[apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:10578:7]
2026-10-24T05:20:08.8754702Z 10577 โ
2026-10-24T05:20:08.8754774Z 10578 โ const layer: Layer.Layer<
2026-10-24T05:20:08.8754844Z ยท โโโฌโโ
2026-10-24T05:20:08.8754970Z ยท โฐโโ 'layer' is declared here
2026-10-24T05:20:08.8755069Z 10579 โ ProviderAdapter.ProviderAdapterV2,
2026-10-24T05:20:08.8755123Z โฐโโโโ
2026-10-24T05:20:08.8755226Z help: Consider removing this declaration.
2026-10-24T05:20:08.8755228Z
2026-10-24T05:20:08.8755451Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-24T05:20:08.8755620Z โญโ[apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts:1998:15]
2026-10-24T05:20:08.8755688Z 1997 โ assert.equal(
2026-10-24T05:20:08.8755832Z 1998 โ items.filter((item) => item.type === "assistant_message").at(-1)?.text,
2026-10-24T05:20:08.8755910Z ยท โโโโโโ
2026-10-24T05:20:08.8755986Z 1999 โ "authoritative answer",
2026-10-24T05:20:08.8756037Z โฐโโโโ
2026-10-24T05:20:08.8756207Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-24T05:20:08.8756211Z
2026-10-24T05:20:08.8756671Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8756837Z โญโ[apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts:3951:7]
2026-10-24T05:20:08.8757016Z 3950 โ const closeFiber = yield* Scope.close(sessionScope, Exit.void).pipe(Effect.forkScoped);
2026-10-24T05:20:08.8757221Z 3951 โ โญโโถ while (!responseLifecycle.includes("failed")) {
2026-10-24T05:20:08.8757328Z 3952 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8757519Z 3953 โ โฐโโถ }
2026-10-24T05:20:08.8757677Z 3954 โ const responseExit = yield* Fiber.join(responseFiber);
2026-10-24T05:20:08.8757728Z โฐโโโโ
2026-10-24T05:20:08.8757731Z
2026-10-24T05:20:08.8758183Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8758348Z โญโ[apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts:6062:9]
2026-10-24T05:20:08.8758435Z 6061 โ .pipe(Effect.forkScoped);
2026-10-24T05:20:08.8758613Z 6062 โ โญโโถ while (promptGates.length < 1) {
2026-10-24T05:20:08.8758723Z 6063 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8758859Z 6064 โ โฐโโถ }
2026-10-24T05:20:08.8759028Z 6065 โ assert.isDefined(sessionUpdateHandler, "session update handler must be wired");
2026-10-24T05:20:08.8759079Z โฐโโโโ
2026-10-24T05:20:08.8759082Z
2026-10-24T05:20:08.8759528Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8759746Z โญโ[apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts:6197:9]
2026-10-24T05:20:08.8759835Z 6196 โ .pipe(Effect.forkScoped);
2026-10-24T05:20:08.8760013Z 6197 โ โญโโถ while (promptGates.length < 2) {
2026-10-24T05:20:08.8760126Z 6198 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8760260Z 6199 โ โฐโโถ }
2026-10-24T05:20:08.8760422Z 6200 โ if (sessionUpdateHandler === undefined || capturedMutation.current === null) {
2026-10-24T05:20:08.8760471Z โฐโโโโ
2026-10-24T05:20:08.8760473Z
2026-10-24T05:20:08.8760638Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8760782Z โญโ[apps/server/src/provider/Drivers/CodexDriver.test.ts:466:14]
2026-10-24T05:20:08.8760833Z 465 โ
2026-10-24T05:20:08.8760937Z 466 โ for (const {} of ["direct", "wrapper"] as const) {
2026-10-24T05:20:08.8761008Z ยท โโ
2026-10-24T05:20:08.8761062Z 467 โ }
2026-10-24T05:20:08.8761112Z โฐโโโโ
2026-10-24T05:20:08.8761343Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8761348Z
2026-10-24T05:20:08.8761595Z โ eslint(no-unused-vars): Function 'layerClaudeAgentSdkReplayQueryRunner' is declared but never used.
2026-10-24T05:20:08.8761772Z โญโ[apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.testkit.ts:960:10]
2026-10-24T05:20:08.8761823Z 959 โ
2026-10-24T05:20:08.8761931Z 960 โ function layerClaudeAgentSdkReplayQueryRunner(
2026-10-24T05:20:08.8762046Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8762241Z ยท โฐโโ 'layerClaudeAgentSdkReplayQueryRunner' is declared here
2026-10-24T05:20:08.8762342Z 961 โ transcript: ClaudeAgentSdkReplayTranscript,
2026-10-24T05:20:08.8762441Z โฐโโโโ
2026-10-24T05:20:08.8762573Z help: Consider removing this declaration.
2026-10-24T05:20:08.8762575Z
2026-10-24T05:20:08.8762757Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8762922Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:555:70]
2026-10-24T05:20:08.8763002Z 554 โ assert.deepStrictEqual(
2026-10-24T05:20:08.8763162Z 555 โ (yield* Ref.get(fixture.syncCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-24T05:20:08.8763280Z ยท โฌ
2026-10-24T05:20:08.8763437Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8763501Z 556 โ [
2026-10-24T05:20:08.8763557Z โฐโโโโ
2026-10-24T05:20:08.8763660Z help: Consider removing this parameter.
2026-10-24T05:20:08.8763662Z
2026-10-24T05:20:08.8763842Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8764013Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:1155:70]
2026-10-24T05:20:08.8764096Z 1154 โ assert.deepStrictEqual(
2026-10-24T05:20:08.8764257Z 1155 โ (yield* Ref.get(fixture.linkCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-24T05:20:08.8764377Z ยท โฌ
2026-10-24T05:20:08.8764534Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8764596Z 1156 โ [
2026-10-24T05:20:08.8764655Z โฐโโโโ
2026-10-24T05:20:08.8764756Z help: Consider removing this parameter.
2026-10-24T05:20:08.8764758Z
2026-10-24T05:20:08.8765083Z โ eslint(no-unused-vars): Variable 'layerCodexAppServerClientFactoryCommand' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8765241Z โญโ[apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts:1444:7]
2026-10-24T05:20:08.8765294Z 1443 โ
2026-10-24T05:20:08.8765408Z 1444 โ const layerCodexAppServerClientFactoryCommand = (
2026-10-24T05:20:08.8765523Z ยท โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8765726Z ยท โฐโโ 'layerCodexAppServerClientFactoryCommand' is declared here
2026-10-24T05:20:08.8765845Z 1445 โ options: CodexClient.CodexAppServerClientOptions & {
2026-10-24T05:20:08.8765901Z โฐโโโโ
2026-10-24T05:20:08.8766002Z help: Consider removing this declaration.
2026-10-24T05:20:08.8766005Z
2026-10-24T05:20:08.8766255Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8766411Z โญโ[apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts:1680:7]
2026-10-24T05:20:08.8766463Z 1679 โ
2026-10-24T05:20:08.8766531Z 1680 โ const layer: Layer.Layer<
2026-10-24T05:20:08.8766601Z ยท โโโฌโโ
2026-10-24T05:20:08.8766724Z ยท โฐโโ 'layer' is declared here
2026-10-24T05:20:08.8766817Z 1681 โ ProviderAdapter.ProviderAdapterV2,
2026-10-24T05:20:08.8766867Z โฐโโโโ
2026-10-24T05:20:08.8766965Z help: Consider removing this declaration.
2026-10-24T05:20:08.8767017Z
2026-10-24T05:20:08.8767333Z โ eslint(no-unused-vars): Variable 'layerFromProviderAdapter' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8767492Z โญโ[apps/server/src/orchestration-v2/ProviderAdapterRegistry.ts:346:7]
2026-10-24T05:20:08.8767545Z 345 โ
2026-10-24T05:20:08.8767642Z 346 โ const layerFromProviderAdapter: Layer.Layer<
2026-10-24T05:20:08.8767735Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8767899Z ยท โฐโโ 'layerFromProviderAdapter' is declared here
2026-10-24T05:20:08.8767974Z 347 โ ProviderAdapterRegistryV2,
2026-10-24T05:20:08.8768024Z โฐโโโโ
2026-10-24T05:20:08.8768123Z help: Consider removing this declaration.
2026-10-24T05:20:08.8768125Z
2026-10-24T05:20:08.8768326Z โ eslint(no-unsafe-optional-chaining): Unsafe usage of optional chaining
2026-10-24T05:20:08.8768489Z โญโ[apps/server/src/orchestration-v2/ThreadLaunchService.test.ts:1783:8]
2026-10-24T05:20:08.8768552Z 1782 โ assert.equal(
2026-10-24T05:20:08.8768697Z 1783 โ (stored.context?.records[0] as { attachmentId: string }).attachmentId,
2026-10-24T05:20:08.8768797Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8768877Z 1784 โ stored.attachments[0]?.id,
2026-10-24T05:20:08.8768926Z โฐโโโโ
2026-10-24T05:20:08.8769092Z help: If this short-circuits with 'undefined' the evaluation will throw TypeError
2026-10-24T05:20:08.8769095Z
2026-10-24T05:20:08.8769237Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8769391Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:152:27]
2026-10-24T05:20:08.8769608Z 151 โ <View ref={anchorRef} collapsable={false} className={props.className} style={props.style}>
2026-10-24T05:20:08.8769699Z 152 โ {props.children(open)}
2026-10-24T05:20:08.8769786Z ยท โโโฌโ
2026-10-24T05:20:08.8769942Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8770003Z 153 โ </View>
2026-10-24T05:20:08.8770053Z โฐโโโโ
2026-10-24T05:20:08.8770509Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8770844Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8770929Z
2026-10-24T05:20:08.8771123Z โ react(memo-dependencies): Found missing/extra memoization dependencies
2026-10-24T05:20:08.8771266Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:140:9]
2026-10-24T05:20:08.8771346Z 139 โ if (action.id !== undefined) {
2026-10-24T05:20:08.8771423Z 140 โ props.onPressAction?.({
2026-10-24T05:20:08.8771492Z ยท โโโฌโโ
2026-10-24T05:20:08.8771618Z ยท โฐโโ Missing dependency `props`
2026-10-24T05:20:08.8771708Z 141 โ nativeEvent: { event: action.id },
2026-10-24T05:20:08.8771852Z 142 โ } as Parameters<NonNullable<MenuComponentProps["onPressAction"]>>[0]);
2026-10-24T05:20:08.8771906Z 143 โ }
2026-10-24T05:20:08.8771966Z 144 โ },
2026-10-24T05:20:08.8772047Z 145 โ [close, props.onPressAction],
2026-10-24T05:20:08.8772139Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8772347Z ยท โฐโโ Overly precise dependency `props.onPressAction`, use `props` instead
2026-10-24T05:20:08.8772400Z 146 โ );
2026-10-24T05:20:08.8772456Z โฐโโโโ
2026-10-24T05:20:08.8772922Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI. Extra dependencies can cause a value to update more often than it should, resulting in performance problems such as excessive renders or effects firing too often
2026-10-24T05:20:08.8773228Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8773231Z
2026-10-24T05:20:08.8773414Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8773552Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:121:27]
2026-10-24T05:20:08.8773712Z 120 โ const scope = makeScope(options.capabilities ?? new Set(["preview", "worktree"]));
2026-10-24T05:20:08.8773798Z 121 โ const dispatch = vi.fn((_: unknown) =>
2026-10-24T05:20:08.8773880Z ยท โฌ
2026-10-24T05:20:08.8774006Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8774106Z 122 โ (options.dispatchGate ?? Effect.void).pipe(
2026-10-24T05:20:08.8774158Z โฐโโโโ
2026-10-24T05:20:08.8774255Z help: Consider removing this parameter.
2026-10-24T05:20:08.8774259Z
2026-10-24T05:20:08.8774442Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8774577Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:134:39]
2026-10-24T05:20:08.8774630Z 133 โ );
2026-10-24T05:20:08.8774734Z 134 โ const listLocalBranchNames = vi.fn((_: string) =>
2026-10-24T05:20:08.8774828Z ยท โฌ
2026-10-24T05:20:08.8774966Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8775031Z 135 โ Effect.succeed(
2026-10-24T05:20:08.8775082Z โฐโโโโ
2026-10-24T05:20:08.8775178Z help: Consider removing this parameter.
2026-10-24T05:20:08.8775181Z
2026-10-24T05:20:08.8775357Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8775545Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:178:31]
2026-10-24T05:20:08.8775627Z 177 โ });
2026-10-24T05:20:08.8775723Z 178 โ const sendToThread = vi.fn((_: unknown) => {
2026-10-24T05:20:08.8775807Z ยท โฌ
2026-10-24T05:20:08.8775939Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8776036Z 179 โ switch (options.continuation ?? "queued") {
2026-10-24T05:20:08.8776084Z โฐโโโโ
2026-10-24T05:20:08.8776182Z help: Consider removing this parameter.
2026-10-24T05:20:08.8776185Z
2026-10-24T05:20:08.8776364Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8776494Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:203:33]
2026-10-24T05:20:08.8776546Z 202 โ );
2026-10-24T05:20:08.8776646Z 203 โ const removeWorktree = vi.fn((_: unknown) =>
2026-10-24T05:20:08.8776737Z ยท โฌ
2026-10-24T05:20:08.8776870Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8776948Z 204 โ options.removeWorktreeFails
2026-10-24T05:20:08.8777000Z โฐโโโโ
2026-10-24T05:20:08.8777098Z help: Consider removing this parameter.
2026-10-24T05:20:08.8777100Z
2026-10-24T05:20:08.8777275Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8777405Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:208:36]
2026-10-24T05:20:08.8777456Z 207 โ );
2026-10-24T05:20:08.8777556Z 208 โ const deleteLocalBranch = vi.fn((_: unknown) =>
2026-10-24T05:20:08.8777647Z ยท โฌ
2026-10-24T05:20:08.8777788Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8777873Z 209 โ options.deleteLocalBranchFails
2026-10-24T05:20:08.8777923Z โฐโโโโ
2026-10-24T05:20:08.8778020Z help: Consider removing this parameter.
2026-10-24T05:20:08.8778022Z
2026-10-24T05:20:08.8778197Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8778328Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:213:42]
2026-10-24T05:20:08.8778381Z 212 โ );
2026-10-24T05:20:08.8778493Z 213 โ const fetchWorktreeBaseCommit = vi.fn((_: unknown) =>
2026-10-24T05:20:08.8778586Z ยท โฌ
2026-10-24T05:20:08.8778730Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8778816Z 214 โ options.fetchWorktreeBaseFails
2026-10-24T05:20:08.8778865Z โฐโโโโ
2026-10-24T05:20:08.8778960Z help: Consider removing this parameter.
2026-10-24T05:20:08.8778962Z
2026-10-24T05:20:08.8779138Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8779269Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:254:30]
2026-10-24T05:20:08.8779321Z 253 โ );
2026-10-24T05:20:08.8779408Z 254 โ const localStatus = vi.fn((_: unknown) =>
2026-10-24T05:20:08.8779492Z ยท โฌ
2026-10-24T05:20:08.8779663Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8779732Z 255 โ Effect.succeed({
2026-10-24T05:20:08.8779781Z โฐโโโโ
2026-10-24T05:20:08.8779928Z help: Consider removing this parameter.
2026-10-24T05:20:08.8779960Z
2026-10-24T05:20:08.8780139Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T05:20:08.8780269Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:264:32]
2026-10-24T05:20:08.8780320Z 263 โ );
2026-10-24T05:20:08.8780469Z 264 โ const refreshStatus = vi.fn((_: string) => Effect.die("refreshStatus stub"));
2026-10-24T05:20:08.8780557Z ยท โฌ
2026-10-24T05:20:08.8780692Z ยท โฐโโ '_' is declared here
2026-10-24T05:20:08.8780834Z 265 โ const runForThread = vi.fn((input: { readonly worktreePath: string }) => {
2026-10-24T05:20:08.8780883Z โฐโโโโ
2026-10-24T05:20:08.8780979Z help: Consider removing this parameter.
2026-10-24T05:20:08.8780987Z
2026-10-24T05:20:08.8781444Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8781609Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:566:7]
2026-10-24T05:20:08.8781707Z 565 โ let afterSequence = created[0]!.sequence;
2026-10-24T05:20:08.8781900Z 566 โ โญโโถ for (let index = 1; index <= 32; index += 1) {
2026-10-24T05:20:08.8782002Z 567 โ โ const nextEvent = {
2026-10-24T05:20:08.8782158Z 568 โ โ id: EventId.make(`event:foundation-stream-race:${index}`),
2026-10-24T05:20:08.8782293Z 569 โ โ type: "thread.metadata-updated" as const,
2026-10-24T05:20:08.8782385Z 570 โ โ threadId,
2026-10-24T05:20:08.8782496Z 571 โ โ providerInstanceId,
2026-10-24T05:20:08.8782686Z 572 โ โ occurredAt: now,
2026-10-24T05:20:08.8782831Z 573 โ โ payload: { ...thread, title: `Race update ${index}` },
2026-10-24T05:20:08.8782957Z 574 โ โ } satisfies OrchestrationV2DomainEvent;
2026-10-24T05:20:08.8783068Z 575 โ โ const reader = yield* eventSink
2026-10-24T05:20:08.8783187Z 576 โ โ .stream({ threadId, afterSequence })
2026-10-24T05:20:08.8783316Z 577 โ โ .pipe(Stream.runHead, Effect.forkChild);
2026-10-24T05:20:08.8783426Z 578 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8783585Z 579 โ โ const written = yield* eventSink.write({ events: [nextEvent] });
2026-10-24T05:20:08.8783715Z 580 โ โ const received = yield* Fiber.join(reader);
2026-10-24T05:20:08.8783829Z 581 โ โ if (Option.isNone(received)) {
2026-10-24T05:20:08.8784024Z 582 โ โ return yield* Effect.die("The event stream ended before delivering the live event.");
2026-10-24T05:20:08.8784101Z 583 โ โ }
2026-10-24T05:20:08.8784257Z 584 โ โ assert.equal(received.value.sequence, written[0]?.sequence);
2026-10-24T05:20:08.8784398Z 585 โ โ assert.equal(received.value.event.id, nextEvent.id);
2026-10-24T05:20:08.8784524Z 586 โ โ afterSequence = received.value.sequence;
2026-10-24T05:20:08.8784700Z 587 โ โฐโโถ }
2026-10-24T05:20:08.8784786Z 588 โ }),
2026-10-24T05:20:08.8784835Z โฐโโโโ
2026-10-24T05:20:08.8784838Z
2026-10-24T05:20:08.8785289Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8785459Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:2327:9]
2026-10-24T05:20:08.8785533Z 2326 โ let settled = false;
2026-10-24T05:20:08.8785690Z 2327 โ โญโโถ while (!settled) {
2026-10-24T05:20:08.8785851Z 2328 โ โ settled = (yield* outbox.listByCommandId(commandId)).every(
2026-10-24T05:20:08.8785983Z 2329 โ โ (effect) => effect.status === "succeeded",
2026-10-24T05:20:08.8786063Z 2330 โ โ );
2026-10-24T05:20:08.8786184Z 2331 โ โ if (!settled) yield* Effect.yieldNow;
2026-10-24T05:20:08.8786317Z 2332 โ โฐโโถ }
2026-10-24T05:20:08.8786432Z 2333 โ }).pipe(Effect.provide(layerWorker), Effect.scoped);
2026-10-24T05:20:08.8786483Z โฐโโโโ
2026-10-24T05:20:08.8786486Z
2026-10-24T05:20:08.8786773Z โ eslint(no-unused-vars): Variable 'revokeActiveMcpThread' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8786895Z โญโ[apps/server/src/mcp/McpSessionRegistry.ts:218:7]
2026-10-24T05:20:08.8786951Z 217 โ
2026-10-24T05:20:08.8787096Z 218 โ const revokeActiveMcpThread = (threadId: ThreadId): Effect.Effect<void> =>
2026-10-24T05:20:08.8787183Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8787341Z ยท โฐโโ 'revokeActiveMcpThread' is declared here
2026-10-24T05:20:08.8787524Z 219 โ activeMcpSessionRegistry ? activeMcpSessionRegistry.revokeThread(threadId) : Effect.void;
2026-10-24T05:20:08.8787574Z โฐโโโโ
2026-10-24T05:20:08.8787674Z help: Consider removing this declaration.
2026-10-24T05:20:08.8787677Z
2026-10-24T05:20:08.8787978Z โ eslint(no-unused-vars): Variable 'revokeAllActiveMcpCredentials' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8788097Z โญโ[apps/server/src/mcp/McpSessionRegistry.ts:221:7]
2026-10-24T05:20:08.8788148Z 220 โ
2026-10-24T05:20:08.8788282Z 221 โ const revokeAllActiveMcpCredentials = (): Effect.Effect<void> =>
2026-10-24T05:20:08.8788385Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8788560Z ยท โฐโโ 'revokeAllActiveMcpCredentials' is declared here
2026-10-24T05:20:08.8788719Z 222 โ activeMcpSessionRegistry ? activeMcpSessionRegistry.revokeAll : Effect.void;
2026-10-24T05:20:08.8788768Z โฐโโโโ
2026-10-24T05:20:08.8788869Z help: Consider removing this declaration.
2026-10-24T05:20:08.8788871Z
2026-10-24T05:20:08.8789132Z โ eslint(no-unused-vars): Variable 'layerDaemon' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8789265Z โญโ[apps/server/src/orchestration-v2/EffectWorker.ts:914:7]
2026-10-24T05:20:08.8789315Z 913 โ
2026-10-24T05:20:08.8789548Z 914 โ const layerDaemon: Layer.Layer<never, never, OrchestrationEffectWorkerV2> = Layer.effectDiscard(
2026-10-24T05:20:08.8789695Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8789902Z ยท โฐโโ 'layerDaemon' is declared here
2026-10-24T05:20:08.8789987Z 915 โ runDaemon.pipe(Effect.forkScoped),
2026-10-24T05:20:08.8790036Z โฐโโโโ
2026-10-24T05:20:08.8790134Z help: Consider removing this declaration.
2026-10-24T05:20:08.8790137Z
2026-10-24T05:20:08.8790407Z โ eslint(no-unused-vars): Variable 'layerUnavailable' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8790548Z โญโ[apps/server/src/orchestration-v2/Orchestrator.ts:12366:7]
2026-10-24T05:20:08.8790600Z 12365 โ
2026-10-24T05:20:08.8790743Z 12366 โ const layerUnavailable: Layer.Layer<OrchestratorV2> = Layer.succeed(
2026-10-24T05:20:08.8790829Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T05:20:08.8791015Z ยท โฐโโ 'layerUnavailable' is declared here
2026-10-24T05:20:08.8791080Z 12367 โ OrchestratorV2,
2026-10-24T05:20:08.8791131Z โฐโโโโ
2026-10-24T05:20:08.8791229Z help: Consider removing this declaration.
2026-10-24T05:20:08.8791232Z
2026-10-24T05:20:08.8791372Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8791486Z โญโ[apps/mobile/src/components/ui/Menu.tsx:54:36]
2026-10-24T05:20:08.8791658Z 53 โ const child = children as ReactElement<Pick<PressableProps, "onTouchStart" | "onPress">>;
2026-10-24T05:20:08.8791827Z 54 โ โญโโถ children = cloneElement(child, {
2026-10-24T05:20:08.8791935Z 55 โ โ onTouchStart: (event) => {
2026-10-24T05:20:08.8792091Z 56 โ โ // Reset for a new touch, not onPressIn, which also fires when a
2026-10-24T05:20:08.8792244Z 57 โ โ // finger moves out of the row and back during the same gesture.
2026-10-24T05:20:08.8792368Z 58 โ โ menuPress.current.isPreparing = false;
2026-10-24T05:20:08.8792530Z 59 โ โ menuPress.current.suppressPress = menuPress.current.isOpen;
2026-10-24T05:20:08.8792638Z 60 โ โ pendingPress.current = null;
2026-10-24T05:20:08.8792755Z 61 โ โ child.props.onTouchStart?.(event);
2026-10-24T05:20:08.8792829Z 62 โ โ },
2026-10-24T05:20:08.8792925Z 63 โ โ onPress: (event) => {
2026-10-24T05:20:08.8793095Z 64 โ โ // Accessibility clicks have no touch identifier and must not inherit
2026-10-24T05:20:08.8793230Z 65 โ โ // cancellation from a previous physical gesture.
2026-10-24T05:20:08.8793394Z 66 โ โ const isTouch = typeof event.nativeEvent.identifier === "number";
2026-10-24T05:20:08.8793577Z 67 โ โ if (isTouch ? menuPress.current.suppressPress : menuPress.current.isOpen) {
2026-10-24T05:20:08.8793663Z 68 โ โ return;
2026-10-24T05:20:08.8793737Z 69 โ โ }
2026-10-24T05:20:08.8793873Z 70 โ โ if (isTouch && menuPress.current.isPreparing) {
2026-10-24T05:20:08.8794039Z 71 โ โ // A release can arrive between native menu preparation and display.
2026-10-24T05:20:08.8794272Z 72 โ โ // Let UIKit's display/cancel callback decide this press's outcome.
2026-10-24T05:20:08.8794409Z 73 โ โ event.persist();
2026-10-24T05:20:08.8794565Z 74 โ โ pendingPress.current = () => child.props.onPress?.(event);
2026-10-24T05:20:08.8794649Z 75 โ โ return;
2026-10-24T05:20:08.8794723Z 76 โ โ }
2026-10-24T05:20:08.8794833Z 77 โ โ child.props.onPress?.(event);
2026-10-24T05:20:08.8794907Z 78 โ โ },
2026-10-24T05:20:08.8795033Z 79 โ โโโถ });
2026-10-24T05:20:08.8795267Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8795368Z 80 โ menuProps.onMenuInteractionStart = () => {
2026-10-24T05:20:08.8795418Z โฐโโโโ
2026-10-24T05:20:08.8795874Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8796163Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8796165Z
2026-10-24T05:20:08.8796388Z โ eslint(no-unused-vars): Function 'assertUserMessagesExclude' is declared but never used.
2026-10-24T05:20:08.8796547Z โญโ[apps/server/src/orchestration-v2/testkit/fixtures/shared.ts:1398:10]
2026-10-24T05:20:08.8796603Z 1397 โ
2026-10-24T05:20:08.8796691Z 1398 โ function assertUserMessagesExclude(
2026-10-24T05:20:08.8796792Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8796956Z ยท โฐโโ 'assertUserMessagesExclude' is declared here
2026-10-24T05:20:08.8797062Z 1399 โ projection: OrchestrationV2ThreadProjection,
2026-10-24T05:20:08.8797113Z โฐโโโโ
2026-10-24T05:20:08.8797213Z help: Consider removing this declaration.
2026-10-24T05:20:08.8797215Z
2026-10-24T05:20:08.8797412Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8797572Z โญโ[apps/mobile/src/features/workspace/WorkspaceToolbar.ios.tsx:114:33]
2026-10-24T05:20:08.8797667Z 113 โ return () => cancelAnimationFrame(frame);
2026-10-24T05:20:08.8797810Z 114 โ }, [restoreSearch, tabActive, bottomSearch]);
2026-10-24T05:20:08.8797952Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8798115Z ยท โฐโโ Unnecessary dependency `bottomSearch`
2026-10-24T05:20:08.8798217Z 115 โ const composeButton = nativeToolbarCompose ? (
2026-10-24T05:20:08.8798267Z โฐโโโโ
2026-10-24T05:20:08.8798552Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8798857Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8798860Z
2026-10-24T05:20:08.8799031Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8799161Z โญโ[apps/web/src/components/CommandPalette.tsx:1996:20]
2026-10-24T05:20:08.8799275Z 1995 โ title: inferProjectTitleFromPath(destinationPath),
2026-10-24T05:20:08.8799365Z 1996 โ createdAt: new Date().toISOString(),
2026-10-24T05:20:08.8799452Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8799626Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8799731Z 1997 โ remoteUrl: addProjectCloneFlow.remoteUrl,
2026-10-24T05:20:08.8799781Z โฐโโโโ
2026-10-24T05:20:08.8800052Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8800343Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8800348Z
2026-10-24T05:20:08.8800538Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T05:20:08.8800681Z โญโ[apps/mobile/src/components/ComposerContextSheet.tsx:267:25]
2026-10-24T05:20:08.8800786Z 266 โ {record.elements?.map((element, index) => (
2026-10-24T05:20:08.8800949Z 267 โ <View key={`${element.selector ?? element.tagName}:${index}`} className="gap-3">
2026-10-24T05:20:08.8801102Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8801176Z 268 โ <ContextField
2026-10-24T05:20:08.8801225Z โฐโโโโ
2026-10-24T05:20:08.8801371Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T05:20:08.8801373Z
2026-10-24T05:20:08.8801540Z โ eslint(no-control-regex): Unexpected control character
2026-10-24T05:20:08.8801728Z โญโ[apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx:220:46]
2026-10-24T05:20:08.8801861Z 219 โ <Text selectable className="font-mono text-sm text-foreground">
2026-10-24T05:20:08.8801995Z 220 โ {interaction.output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")}
2026-10-24T05:20:08.8802101Z ยท โโโฌโ
2026-10-24T05:20:08.8802262Z ยท โฐโโ 'U+001B' is a control character.
2026-10-24T05:20:08.8802325Z 221 โ </Text>
2026-10-24T05:20:08.8802376Z โฐโโโโ
2026-10-24T05:20:08.8802652Z help: Avoid matching control characters in regular expressions. If intentional, disable this rule for the expression.
2026-10-24T05:20:08.8802682Z
2026-10-24T05:20:08.8803136Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8803280Z โญโ[apps/server/src/background/HostPowerMonitor.test.ts:133:11]
2026-10-24T05:20:08.8803405Z 132 โ const monitor = yield* HostPowerMonitor.HostPowerMonitor;
2026-10-24T05:20:08.8803544Z 133 โ โญโโถ for (
2026-10-24T05:20:08.8803644Z 134 โ โ let attempt = 0;
2026-10-24T05:20:08.8803807Z 135 โ โ attempt < 100 && (yield* monitor.snapshot).onBattery !== "true";
2026-10-24T05:20:08.8803905Z 136 โ โ attempt += 1
2026-10-24T05:20:08.8803987Z 137 โ โ ) {
2026-10-24T05:20:08.8804097Z 138 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8804228Z 139 โ โฐโโถ }
2026-10-24T05:20:08.8804348Z 140 โ expect((yield* monitor.snapshot).onBattery).toBe("true");
2026-10-24T05:20:08.8804399Z โฐโโโโ
2026-10-24T05:20:08.8804402Z
2026-10-24T05:20:08.8804658Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8804789Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:68:5]
2026-10-24T05:20:08.8804886Z 66 โ const { id: attachmentId, fileUri } = attachment;
2026-10-24T05:20:08.8804955Z 67 โ useEffect(() => {
2026-10-24T05:20:08.8805034Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8805161Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8805223Z 68 โ setUri(null);
2026-10-24T05:20:08.8805291Z ยท โโโโฌโโ
2026-10-24T05:20:08.8805453Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8805515Z 69 โ setError(null);
2026-10-24T05:20:08.8805563Z โฐโโโโ
2026-10-24T05:20:08.8806151Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8806472Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8806477Z
2026-10-24T05:20:08.8806673Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8806803Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:91:7]
2026-10-24T05:20:08.8806856Z 90 โ };
2026-10-24T05:20:08.8806930Z 91 โ }, [attachmentId, fileUri]);
2026-10-24T05:20:08.8807053Z ยท โโโโโโโฌโโโโโ โโโโฌโโโ
2026-10-24T05:20:08.8807229Z ยท โ โฐโโ Unnecessary dependency `fileUri`
2026-10-24T05:20:08.8807373Z ยท โฐโโ Unnecessary dependency `attachmentId`
2026-10-24T05:20:08.8807558Z 92 โ const mimeType = videoMimeType(attachment) ?? attachment.mimeType;
2026-10-24T05:20:08.8807644Z โฐโโโโ
2026-10-24T05:20:08.8807929Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8808229Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8808234Z
2026-10-24T05:20:08.8808440Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T05:20:08.8808575Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:213:34]
2026-10-24T05:20:08.8808640Z 212 โ useEffect(() => {
2026-10-24T05:20:08.8808751Z 213 โ if (!isFocused && hasSource) props.onRequestClose();
2026-10-24T05:20:08.8808850Z ยท โโโฌโโ
2026-10-24T05:20:08.8808998Z ยท โฐโโ Missing dependency `props`
2026-10-24T05:20:08.8809102Z 214 โ }, [isFocused, hasSource, props.onRequestClose]);
2026-10-24T05:20:08.8809214Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8809435Z ยท โฐโโ Overly precise dependency `props.onRequestClose`, use `props` instead
2026-10-24T05:20:08.8809506Z 215 โ const { source } = props;
2026-10-24T05:20:08.8809567Z โฐโโโโ
2026-10-24T05:20:08.8810010Z help: Missing dependencies can cause an effect to fire less often than it should. Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8810316Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8810323Z
2026-10-24T05:20:08.8810529Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-24T05:20:08.8810630Z โญโ[apps/mobile/src/Stack.tsx:1079:21]
2026-10-24T05:20:08.8810693Z 1078 โ <Navigator
2026-10-24T05:20:08.8810822Z 1079 โ screenLayout={(props) => <GuardedScreenLayout {...props} />}
2026-10-24T05:20:08.8810957Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8811039Z 1080 โ screenOptions={({ route }) =>
2026-10-24T05:20:08.8811088Z โฐโโโโ
2026-10-24T05:20:08.8811446Z help: Move this component definition out of the parent component `AdaptiveRootStack` and pass data as props. If you want to allow component creation in props, set `allowAsProps` option to true.
2026-10-24T05:20:08.8811450Z
2026-10-24T05:20:08.8811613Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8811749Z โญโ[apps/server/src/process/externalLauncher.test.ts:186:12]
2026-10-24T05:20:08.8811801Z 185 โ
2026-10-24T05:20:08.8811900Z 186 โ for (const {} of ["darwin", "linux"] as const) {
2026-10-24T05:20:08.8811969Z ยท โโ
2026-10-24T05:20:08.8812023Z 187 โ }
2026-10-24T05:20:08.8812073Z โฐโโโโ
2026-10-24T05:20:08.8812295Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8812298Z
2026-10-24T05:20:08.8812504Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8812666Z โญโ[apps/server/src/process/externalLauncher.test.ts:189:12]
2026-10-24T05:20:08.8812718Z 188 โ
2026-10-24T05:20:08.8812781Z 189 โ for (const {} of [
2026-10-24T05:20:08.8812847Z ยท โโ
2026-10-24T05:20:08.8812937Z 190 โ { kind: "browser", folderVerb: "none" },
2026-10-24T05:20:08.8812986Z โฐโโโโ
2026-10-24T05:20:08.8813205Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8813207Z
2026-10-24T05:20:08.8813366Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8813501Z โญโ[apps/server/src/process/externalLauncher.test.ts:311:12]
2026-10-24T05:20:08.8813552Z 310 โ
2026-10-24T05:20:08.8813682Z 311 โ for (const {} of ["rejected", "spawn-error", "stalled"] as const) {
2026-10-24T05:20:08.8813749Z ยท โโ
2026-10-24T05:20:08.8813801Z 312 โ }
2026-10-24T05:20:08.8813851Z โฐโโโโ
2026-10-24T05:20:08.8814069Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8814071Z
2026-10-24T05:20:08.8814231Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8814364Z โญโ[apps/server/src/process/externalLauncher.test.ts:314:12]
2026-10-24T05:20:08.8814415Z 313 โ
2026-10-24T05:20:08.8814477Z 314 โ for (const {} of [
2026-10-24T05:20:08.8814542Z ยท โโ
2026-10-24T05:20:08.8814595Z 315 โ {
2026-10-24T05:20:08.8814644Z โฐโโโโ
2026-10-24T05:20:08.8814867Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8814872Z
2026-10-24T05:20:08.8815031Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T05:20:08.8815146Z โญโ[apps/server/src/processRunner.test.ts:266:14]
2026-10-24T05:20:08.8815198Z 265 โ
2026-10-24T05:20:08.8815300Z 266 โ for (const {} of ["timeout", "success"] as const) {
2026-10-24T05:20:08.8815369Z ยท โโ
2026-10-24T05:20:08.8815422Z 267 โ }
2026-10-24T05:20:08.8815470Z โฐโโโโ
2026-10-24T05:20:08.8815690Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T05:20:08.8815692Z
2026-10-24T05:20:08.8815950Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8816134Z โญโ[apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx:119:10]
2026-10-24T05:20:08.8816185Z 117 โ
2026-10-24T05:20:08.8816250Z 118 โ useEffect(() => {
2026-10-24T05:20:08.8816317Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8816447Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8816525Z 119 โ void refreshNotifications();
2026-10-24T05:20:08.8816615Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8816784Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8816922Z 120 โ const subscription = AppState.addEventListener("change", (state) => {
2026-10-24T05:20:08.8816971Z โฐโโโโ
2026-10-24T05:20:08.8817607Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8817959Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8817962Z
2026-10-24T05:20:08.8818211Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8818390Z โญโ[apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx:128:7]
2026-10-24T05:20:08.8818441Z 125 โ
2026-10-24T05:20:08.8818504Z 126 โ useEffect(() => {
2026-10-24T05:20:08.8818577Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8818706Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8818771Z 127 โ if (!isLoaded) {
2026-10-24T05:20:08.8818859Z 128 โ setLiveActivityStatus("checking");
2026-10-24T05:20:08.8818945Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8819114Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8819175Z 129 โ return;
2026-10-24T05:20:08.8819225Z โฐโโโโ
2026-10-24T05:20:08.8819866Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8820183Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8820186Z
2026-10-24T05:20:08.8820642Z โ t3code(no-polling-loop-in-tests): Polling loop in a test. Spinning on `yieldNow`/`sleep` is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-24T05:20:08.8820821Z โญโ[apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts:521:13]
2026-10-24T05:20:08.8820891Z 520 โ })).delivery;
2026-10-24T05:20:08.8821083Z 521 โ โญโโถ while (delivery.outcome === "accepted") {
2026-10-24T05:20:08.8821242Z 522 โ โ yield* Effect.yieldNow;
2026-10-24T05:20:08.8821412Z 523 โ โ delivery = (yield* service.getWebhookDelivery({
2026-10-24T05:20:08.8821509Z 524 โ โ id: task.id,
2026-10-24T05:20:08.8821624Z 525 โ โ deliveryId: deliveryId!,
2026-10-24T05:20:08.8821718Z 526 โ โ })).delivery;
2026-10-24T05:20:08.8821853Z 527 โ โฐโโถ }
2026-10-24T05:20:08.8821968Z 528 โ assert.equal(delivery.outcome, "dispatch_failed");
2026-10-24T05:20:08.8822018Z โฐโโโโ
2026-10-24T05:20:08.8822020Z
2026-10-24T05:20:08.8822223Z โ eslint(no-unused-vars): Function 'describeSchedule' is declared but never used.
2026-10-24T05:20:08.8822351Z โญโ[apps/server/src/scheduledTasks/Schedule.ts:79:10]
2026-10-24T05:20:08.8822405Z 78 โ
2026-10-24T05:20:08.8822538Z 79 โ function describeSchedule(schedule: ScheduledTaskSchedule): string {
2026-10-24T05:20:08.8822622Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T05:20:08.8822766Z ยท โฐโโ 'describeSchedule' is declared here
2026-10-24T05:20:08.8822870Z 80 โ if (schedule.type === "webhook") return "On webhook";
2026-10-24T05:20:08.8822921Z โฐโโโโ
2026-10-24T05:20:08.8823021Z help: Consider removing this declaration.
2026-10-24T05:20:08.8823024Z
2026-10-24T05:20:08.8823275Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8823434Z โญโ[apps/server/src/orchestration-v2/ThreadPullRequestService.ts:413:7]
2026-10-24T05:20:08.8823492Z 412 โ
2026-10-24T05:20:08.8823616Z 413 โ const layer = Layer.effect(ThreadPullRequestServiceV2, make);
2026-10-24T05:20:08.8823687Z ยท โโโฌโโ
2026-10-24T05:20:08.8823808Z ยท โฐโโ 'layer' is declared here
2026-10-24T05:20:08.8823858Z โฐโโโโ
2026-10-24T05:20:08.8823956Z help: Consider removing this declaration.
2026-10-24T05:20:08.8823960Z
2026-10-24T05:20:08.8824317Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-24T05:20:08.8824439Z โญโ[apps/server/src/auth/RpcAuthorization.ts:237:17]
2026-10-24T05:20:08.8824570Z 236 โ const requiredScopesForSettingsUpdate = (payload: unknown) => {
2026-10-24T05:20:08.8824703Z 237 โ const input = Schema.decodeUnknownSync(SettingsUpdate)(payload);
2026-10-24T05:20:08.8824807Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8824942Z 238 โ const scopes = requiredScopesForServerSettingsPatch(input.patch);
2026-10-24T05:20:08.8824994Z โฐโโโโ
2026-10-24T05:20:08.8824997Z
2026-10-24T05:20:08.8825348Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-24T05:20:08.8825468Z โญโ[apps/server/src/auth/RpcAuthorization.ts:256:26]
2026-10-24T05:20:08.8825566Z 255 โ if (method === WS_METHODS.assetsCreateUrl) {
2026-10-24T05:20:08.8825718Z 256 โ const { resource } = Schema.decodeUnknownSync(AssetCreateUrlInput)(payload);
2026-10-24T05:20:08.8825829Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8825939Z 257 โ return [
2026-10-24T05:20:08.8826024Z โฐโโโโ
2026-10-24T05:20:08.8826027Z
2026-10-24T05:20:08.8826210Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-24T05:20:08.8826324Z โญโ[apps/mobile/src/lib/useHoverGesture.ts:8:15]
2026-10-24T05:20:08.8826380Z 7 โ () =>
2026-10-24T05:20:08.8826445Z 8 โ Gesture.Hover()
2026-10-24T05:20:08.8826520Z ยท โโโฌโโ
2026-10-24T05:20:08.8826650Z ยท โฐโโ `Hover` may be a component
2026-10-24T05:20:08.8826723Z 9 โ .manualActivation(true)
2026-10-24T05:20:08.8826773Z โฐโโโโ
2026-10-24T05:20:08.8827050Z help: Render `Hover` with JSX if it is a component; otherwise rename it to start with a lowercase letter or allowlist it in the compiler configuration
2026-10-24T05:20:08.8827495Z note: `Hover` is treated as a component because it begins with an uppercase letter; React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-24T05:20:08.8827500Z
2026-10-24T05:20:08.8827763Z โ eslint(no-unused-vars): Variable 'layerTest' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8827892Z โญโ[apps/server/src/telemetry/AnalyticsService.ts:340:7]
2026-10-24T05:20:08.8827944Z 339 โ
2026-10-24T05:20:08.8828045Z 340 โ const layerTest = AnalyticsService.layerTest;
2026-10-24T05:20:08.8828117Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8828246Z ยท โฐโโ 'layerTest' is declared here
2026-10-24T05:20:08.8828296Z โฐโโโโ
2026-10-24T05:20:08.8828403Z help: Consider removing this declaration.
2026-10-24T05:20:08.8828408Z
2026-10-24T05:20:08.8828601Z โ eslint(no-unused-vars): Identifier 'identity' is imported but never used.
2026-10-24T05:20:08.8828700Z โญโ[apps/server/src/auth/http.ts:28:10]
2026-10-24T05:20:08.8828786Z 27 โ import * as Schema from "effect/Schema";
2026-10-24T05:20:08.8828877Z 28 โ import { identity } from "effect/Function";
2026-10-24T05:20:08.8828950Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8829080Z ยท โฐโโ 'identity' is imported here
2026-10-24T05:20:08.8829163Z 29 โ import * as Layer from "effect/Layer";
2026-10-24T05:20:08.8829212Z โฐโโโโ
2026-10-24T05:20:08.8829310Z help: Consider removing this import.
2026-10-24T05:20:08.8829313Z
2026-10-24T05:20:08.8829514Z โ eslint(no-unused-vars): Identifier 'HostProcess' is imported but never used.
2026-10-24T05:20:08.8829715Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:25:13]
2026-10-24T05:20:08.8829799Z 24 โ import * as Schema from "effect/Schema";
2026-10-24T05:20:08.8829913Z 25 โ import * as HostProcess from "@t3tools/shared/HostProcess";
2026-10-24T05:20:08.8829991Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8830127Z ยท โฐโโ 'HostProcess' is imported here
2026-10-24T05:20:08.8830178Z 26 โ
2026-10-24T05:20:08.8830227Z โฐโโโโ
2026-10-24T05:20:08.8830320Z help: Consider removing this import.
2026-10-24T05:20:08.8830323Z
2026-10-24T05:20:08.8830587Z โ eslint(no-unused-vars): Variable 'serverConfig' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8830798Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:124:11]
2026-10-24T05:20:08.8830949Z 123 โ const path = yield* Path.Path;
2026-10-24T05:20:08.8831063Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-24T05:20:08.8831143Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8831277Z ยท โฐโโ 'serverConfig' is declared here
2026-10-24T05:20:08.8831416Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-24T05:20:08.8831465Z โฐโโโโ
2026-10-24T05:20:08.8831564Z help: Consider removing this declaration.
2026-10-24T05:20:08.8831566Z
2026-10-24T05:20:08.8831834Z โ eslint(no-unused-vars): Variable 'serverSettings' is declared but never used. Unused variables should start with a '_'.
2026-10-24T05:20:08.8831999Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:125:11]
2026-10-24T05:20:08.8832114Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-24T05:20:08.8832249Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-24T05:20:08.8832334Z ยท โโโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8832475Z ยท โฐโโ 'serverSettings' is declared here
2026-10-24T05:20:08.8832608Z 126 โ const gitWorkflow = yield* GitWorkflowService.GitWorkflowService;
2026-10-24T05:20:08.8832657Z โฐโโโโ
2026-10-24T05:20:08.8832758Z help: Consider removing this declaration.
2026-10-24T05:20:08.8832760Z
2026-10-24T05:20:08.8832941Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-24T05:20:08.8833104Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:100:85]
2026-10-24T05:20:08.8833204Z 99 โ const startEditor = startScheduledTaskEditor;
2026-10-24T05:20:08.8833383Z 100 โ const resetEditor = useCallback(() => startEditor(defaultEditor), [defaultEditor, startEditor]);
2026-10-24T05:20:08.8833526Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8833725Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-24T05:20:08.8833803Z 101 โ const readEditor = useCallback(
2026-10-24T05:20:08.8833851Z โฐโโโโ
2026-10-24T05:20:08.8834159Z help: Extra dependencies can cause a value to update more often than it should, resulting in performance problems such as excessive renders or effects firing too often
2026-10-24T05:20:08.8834474Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8834479Z
2026-10-24T05:20:08.8834655Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-24T05:20:08.8834810Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:121:7]
2026-10-24T05:20:08.8834873Z 120 โ setEditor,
2026-10-24T05:20:08.8834938Z 121 โ startEditor,
2026-10-24T05:20:08.8835013Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8835150Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-24T05:20:08.8835215Z 122 โ hasChanges,
2026-10-24T05:20:08.8835266Z โฐโโโโ
2026-10-24T05:20:08.8835634Z help: Extra dependencies can cause a value to update more often than it should, resulting in performance problems such as excessive renders or effects firing too often
2026-10-24T05:20:08.8835980Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8835984Z
2026-10-24T05:20:08.8836418Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T05:20:08.8836541Z โญโ[apps/server/src/serverSettings.test.ts:1741:32]
2026-10-24T05:20:08.8836707Z 1740 โ const model = createModelSelection(ProviderInstanceId.make("codex"), "gpt-5.5");
2026-10-24T05:20:08.8836891Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-24T05:20:08.8837002Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8837110Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-24T05:20:08.8837162Z โฐโโโโ
2026-10-24T05:20:08.8837165Z
2026-10-24T05:20:08.8837594Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T05:20:08.8837713Z โญโ[apps/server/src/serverSettings.test.ts:1742:34]
2026-10-24T05:20:08.8837891Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-24T05:20:08.8837995Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-24T05:20:08.8838112Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8838230Z 1743 โ Schema.fromJsonString(Schema.Array(ProjectScript)),
2026-10-24T05:20:08.8838282Z โฐโโโโ
2026-10-24T05:20:08.8838284Z
2026-10-24T05:20:08.8838491Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-24T05:20:08.8838611Z โญโ[apps/mobile/src/lib/markdownDocument.ts:259:28]
2026-10-24T05:20:08.8838709Z 258 โ visit(parser.parse(markdown), false, false);
2026-10-24T05:20:08.8838791Z 259 โ for (const edit of edits.reverse())
2026-10-24T05:20:08.8838885Z ยท โโโโโโโ
2026-10-24T05:20:08.8839046Z 260 โ markdown = markdown.slice(0, edit.start) + edit.content + markdown.slice(edit.end);
2026-10-24T05:20:08.8839097Z โฐโโโโ
2026-10-24T05:20:08.8839357Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-24T05:20:08.8839362Z
2026-10-24T05:20:08.8839591Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-24T05:20:08.8839709Z โญโ[apps/mobile/src/lib/markdownDocument.ts:290:28]
2026-10-24T05:20:08.8839787Z 289 โ visit(parser.parse(markdown));
2026-10-24T05:20:08.8839868Z 290 โ for (const edit of edits.reverse())
2026-10-24T05:20:08.8839960Z ยท โโโโโโโ
2026-10-24T05:20:08.8840117Z 291 โ markdown = markdown.slice(0, edit.start) + edit.content + markdown.slice(edit.end);
2026-10-24T05:20:08.8840167Z โฐโโโโ
2026-10-24T05:20:08.8840564Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-24T05:20:08.8840597Z
2026-10-24T05:20:08.8840800Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-24T05:20:08.8840918Z โญโ[apps/mobile/src/lib/markdownDocument.ts:344:38]
2026-10-24T05:20:08.8840994Z 343 โ visit(parser.parse(markdown));
2026-10-24T05:20:08.8841097Z 344 โ for (const lineStart of lineStarts.reverse()) {
2026-10-24T05:20:08.8841196Z ยท โโโโโโโ
2026-10-24T05:20:08.8841357Z 345 โ // The header row may be a lazy line without its container markers (`>` or list indent),
2026-10-24T05:20:08.8841407Z โฐโโโโ
2026-10-24T05:20:08.8841656Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-24T05:20:08.8841659Z
2026-10-24T05:20:08.8841812Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8841981Z โญโ[apps/mobile/src/features/voice-input/GlobalVoiceInputControl.tsx:68:5]
2026-10-24T05:20:08.8842082Z 65 โ const [expanded, setExpanded] = useState(false);
2026-10-24T05:20:08.8842163Z 66 โ const progress = useSharedValue(0);
2026-10-24T05:20:08.8842235Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8842364Z ยท โฐโโ `progress` originates here
2026-10-24T05:20:08.8842430Z 67 โ useEffect(() => {
2026-10-24T05:20:08.8842552Z 68 โ progress.value = withTiming(expanded ? 1 : 0, MORPH_TIMING);
2026-10-24T05:20:08.8842619Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8842750Z ยท โฐโโ `progress` cannot be modified
2026-10-24T05:20:08.8842826Z 69 โ }, [expanded, progress]);
2026-10-24T05:20:08.8842878Z โฐโโโโ
2026-10-24T05:20:08.8843136Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8843436Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8843438Z
2026-10-24T05:20:08.8843856Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T05:20:08.8843999Z โญโ[apps/server/src/provider/acp/AntigravityProtocol.ts:263:20]
2026-10-24T05:20:08.8844077Z 262 โ ...(update._meta !== undefined
2026-10-24T05:20:08.8844242Z 263 โ ? { _meta: Schema.is(Schema.Record(Schema.String, Schema.Json))(meta) ? meta : null }
2026-10-24T05:20:08.8844332Z ยท โโโโโโโโโ
2026-10-24T05:20:08.8844392Z 264 โ : {}),
2026-10-24T05:20:08.8844441Z โฐโโโโ
2026-10-24T05:20:08.8844443Z
2026-10-24T05:20:08.8844584Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8844738Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:122:38]
2026-10-24T05:20:08.8844893Z 121 โ const audioLevelsRef = useRef(Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0));
2026-10-24T05:20:08.8845014Z 122 โ const audioLevels = useSharedValue(audioLevelsRef.current);
2026-10-24T05:20:08.8845130Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8845356Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8845567Z 123 โ const sessionRef = useRef<VoiceInputSession | null>(null);
2026-10-24T05:20:08.8845617Z โฐโโโโ
2026-10-24T05:20:08.8846071Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8846360Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8846362Z
2026-10-24T05:20:08.8846502Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8846660Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:8]
2026-10-24T05:20:08.8846713Z 125 โ
2026-10-24T05:20:08.8846819Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8846904Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8847051Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8847150Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8847198Z โฐโโโโ
2026-10-24T05:20:08.8847656Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8847946Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8847951Z
2026-10-24T05:20:08.8848090Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8848242Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:7]
2026-10-24T05:20:08.8848296Z 125 โ
2026-10-24T05:20:08.8848401Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8848487Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8848632Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8848729Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8848779Z โฐโโโโ
2026-10-24T05:20:08.8849277Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8849617Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8849619Z
2026-10-24T05:20:08.8849758Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8849911Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:31]
2026-10-24T05:20:08.8849962Z 125 โ
2026-10-24T05:20:08.8850065Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8850175Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8850340Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8850442Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8850495Z โฐโโโโ
2026-10-24T05:20:08.8850944Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8851224Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8851227Z
2026-10-24T05:20:08.8851367Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8851520Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:30]
2026-10-24T05:20:08.8851571Z 125 โ
2026-10-24T05:20:08.8851677Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8851789Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8851952Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8852052Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8852102Z โฐโโโโ
2026-10-24T05:20:08.8852552Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8852834Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8852836Z
2026-10-24T05:20:08.8852980Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8853135Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:127:46]
2026-10-24T05:20:08.8853243Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8853433Z 127 โ โญโโถ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8853603Z 128 โ โ create: () => new AudioModule.AudioRecorder(VOICE_RECORDING_OPTIONS),
2026-10-24T05:20:08.8853725Z 129 โ โ onStatus: (status: RecordingStatus) => {
2026-10-24T05:20:08.8853872Z 130 โ โ sessionRef.current?.controller.handleRecorderStatus({
2026-10-24T05:20:08.8853989Z 131 โ โ isFinished: status.isFinished,
2026-10-24T05:20:08.8854209Z 132 โ โ hasError: status.hasError || status.mediaServicesDidReset === true,
2026-10-24T05:20:08.8854338Z 133 โ โ error: status.error,
2026-10-24T05:20:08.8854433Z 134 โ โ url: status.url,
2026-10-24T05:20:08.8854510Z 135 โ โ });
2026-10-24T05:20:08.8854586Z 136 โ โ },
2026-10-24T05:20:08.8854780Z 137 โ โ // Read when recording starts so preference changes do not re-render every composer.
2026-10-24T05:20:08.8854885Z 138 โ โ selectInput: (inputs) => {
2026-10-24T05:20:08.8855037Z 139 โ โ const preferences = registry.get(mobilePreferencesAtom);
2026-10-24T05:20:08.8855179Z 140 โ โ if (!AsyncResult.isSuccess(preferences)) return null;
2026-10-24T05:20:08.8855347Z 141 โ โ const known = microphoneOrder(preferences.value.microphones);
2026-10-24T05:20:08.8855488Z 142 โ โ const order = rememberMicrophones(known, inputs);
2026-10-24T05:20:08.8855586Z 143 โ โ if (order !== known) {
2026-10-24T05:20:08.8855720Z 144 โ โ registry.set(updateMobilePreferencesAtom, {
2026-10-24T05:20:08.8855834Z 145 โ โ transform: (current) => ({
2026-10-24T05:20:08.8856035Z 146 โ โ microphones: rememberMicrophones(microphoneOrder(current.microphones), inputs),
2026-10-24T05:20:08.8856117Z 147 โ โ }),
2026-10-24T05:20:08.8856197Z 148 โ โ });
2026-10-24T05:20:08.8856274Z 149 โ โ }
2026-10-24T05:20:08.8856416Z 150 โ โ return preferredMicrophoneInput(inputs, order);
2026-10-24T05:20:08.8856492Z 151 โ โ },
2026-10-24T05:20:08.8856620Z 152 โ โโโถ });
2026-10-24T05:20:08.8856852Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8856934Z 153 โ recorderRef.current = recorder;
2026-10-24T05:20:08.8856983Z โฐโโโโ
2026-10-24T05:20:08.8857438Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8857727Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8857732Z
2026-10-24T05:20:08.8857872Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8858025Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:153:16]
2026-10-24T05:20:08.8858080Z 152 โ });
2026-10-24T05:20:08.8858160Z 153 โ recorderRef.current = recorder;
2026-10-24T05:20:08.8858271Z ยท โโโโโโฌโโโโโโโโโโฌโโโ
2026-10-24T05:20:08.8858450Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T05:20:08.8858562Z ยท โฐโโ This value is a ref
2026-10-24T05:20:08.8858665Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-24T05:20:08.8858715Z โฐโโโโ
2026-10-24T05:20:08.8859216Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8859531Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8859534Z
2026-10-24T05:20:08.8859703Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8859857Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:154:48]
2026-10-24T05:20:08.8859944Z 153 โ recorderRef.current = recorder;
2026-10-24T05:20:08.8860138Z 154 โ โญโโถ sessionRef.current = new VoiceInputSession({
2026-10-24T05:20:08.8860223Z 155 โ โ recorder,
2026-10-24T05:20:08.8860349Z 156 โ โ getTranscriber: getLocalVoiceTranscriber,
2026-10-24T05:20:08.8860465Z 157 โ โ requestPermission: async () => {
2026-10-24T05:20:08.8860626Z 158 โ โ const permission = await requestRecordingPermissionsAsync();
2026-10-24T05:20:08.8860812Z 159 โ โ return { granted: permission.granted, canAskAgain: permission.canAskAgain };
2026-10-24T05:20:08.8860889Z 160 โ โ },
2026-10-24T05:20:08.8861027Z 161 โ โ configureRecording: configureVoiceRecordingAudio,
2026-10-24T05:20:08.8861158Z 162 โ โ releaseRecording: releaseVoiceRecordingAudio,
2026-10-24T05:20:08.8861293Z 163 โ โ deleteRecording: (uri) => new File(uri).delete(),
2026-10-24T05:20:08.8861404Z 164 โ โ onStateChange: (nextState) =>
2026-10-24T05:20:08.8861492Z 165 โ โ setState({
2026-10-24T05:20:08.8861589Z 166 โ โ state: nextState,
2026-10-24T05:20:08.8861723Z 167 โ โ ownerKey: sessionRef.current?.ownerKey ?? null,
2026-10-24T05:20:08.8861850Z 168 โ โ label: sessionRef.current?.label ?? null,
2026-10-24T05:20:08.8861927Z 169 โ โ }),
2026-10-24T05:20:08.8862053Z 170 โ โโโถ });
2026-10-24T05:20:08.8862246Z ยท โฐโโโโ Cannot access ref value during render
2026-10-24T05:20:08.8862300Z 171 โ }
2026-10-24T05:20:08.8862356Z โฐโโโโ
2026-10-24T05:20:08.8862811Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8863095Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8863098Z
2026-10-24T05:20:08.8863238Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8863392Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:154:15]
2026-10-24T05:20:08.8863471Z 153 โ recorderRef.current = recorder;
2026-10-24T05:20:08.8863572Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-24T05:20:08.8863737Z ยท โโโโโโฌโโโโโโโโโฌโโโ
2026-10-24T05:20:08.8863949Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T05:20:08.8864062Z ยท โฐโโ This value is a ref
2026-10-24T05:20:08.8864126Z 155 โ recorder,
2026-10-24T05:20:08.8864175Z โฐโโโโ
2026-10-24T05:20:08.8864626Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8864908Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8864910Z
2026-10-24T05:20:08.8865058Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8865212Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:185:7]
2026-10-24T05:20:08.8865295Z 184 โ return () => subscription.remove();
2026-10-24T05:20:08.8865360Z 185 โ }, [controller]);
2026-10-24T05:20:08.8865434Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8865575Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8865626Z 186 โ
2026-10-24T05:20:08.8865676Z โฐโโโโ
2026-10-24T05:20:08.8866127Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8866417Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8866422Z
2026-10-24T05:20:08.8866561Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8866711Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:185:6]
2026-10-24T05:20:08.8866796Z 184 โ return () => subscription.remove();
2026-10-24T05:20:08.8866860Z 185 โ }, [controller]);
2026-10-24T05:20:08.8866935Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8867073Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8867124Z 186 โ
2026-10-24T05:20:08.8867175Z โฐโโโโ
2026-10-24T05:20:08.8867628Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8867910Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8867912Z
2026-10-24T05:20:08.8868053Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8868206Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:192:6]
2026-10-24T05:20:08.8868261Z 191 โ },
2026-10-24T05:20:08.8868329Z 192 โ [controller, recorder],
2026-10-24T05:20:08.8868402Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8868591Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8868675Z 193 โ );
2026-10-24T05:20:08.8868724Z โฐโโโโ
2026-10-24T05:20:08.8869175Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8869456Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8869458Z
2026-10-24T05:20:08.8869614Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8869843Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:175:20]
2026-10-24T05:20:08.8869931Z 174 โ const controller = session.controller;
2026-10-24T05:20:08.8870020Z 175 โ const recorder = recorderRef.current;
2026-10-24T05:20:08.8870125Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8870280Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8870330Z 176 โ
2026-10-24T05:20:08.8870380Z โฐโโโโ
2026-10-24T05:20:08.8870831Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8871152Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8871155Z
2026-10-24T05:20:08.8871298Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8871451Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:192:5]
2026-10-24T05:20:08.8871506Z 191 โ },
2026-10-24T05:20:08.8871576Z 192 โ [controller, recorder],
2026-10-24T05:20:08.8871663Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8871806Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8871860Z 193 โ );
2026-10-24T05:20:08.8871910Z โฐโโโโ
2026-10-24T05:20:08.8872360Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8872708Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8872748Z
2026-10-24T05:20:08.8872887Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8873039Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:246:20]
2026-10-24T05:20:08.8873131Z 245 โ return () => clearInterval(intervalId);
2026-10-24T05:20:08.8873237Z 246 โ }, [audioLevels, controller, recorder, state.phase]);
2026-10-24T05:20:08.8873322Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8873472Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8873524Z 247 โ
2026-10-24T05:20:08.8873572Z โฐโโโโ
2026-10-24T05:20:08.8874030Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8874314Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8874316Z
2026-10-24T05:20:08.8874455Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8874608Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:246:6]
2026-10-24T05:20:08.8874694Z 245 โ return () => clearInterval(intervalId);
2026-10-24T05:20:08.8874800Z 246 โ }, [audioLevels, controller, recorder, state.phase]);
2026-10-24T05:20:08.8874927Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8875091Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8875144Z 247 โ
2026-10-24T05:20:08.8875194Z โฐโโโโ
2026-10-24T05:20:08.8875645Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8875926Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8875929Z
2026-10-24T05:20:08.8876067Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8876217Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:261:5]
2026-10-24T05:20:08.8876287Z 260 โ setOwnerFocused,
2026-10-24T05:20:08.8876348Z 261 โ session,
2026-10-24T05:20:08.8876419Z ยท โโโโฌโโโ
2026-10-24T05:20:08.8876552Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8876610Z 262 โ stop,
2026-10-24T05:20:08.8876660Z โฐโโโโ
2026-10-24T05:20:08.8877107Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8877386Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8877390Z
2026-10-24T05:20:08.8877575Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8877762Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:251:10]
2026-10-24T05:20:08.8877814Z 250 โ
2026-10-24T05:20:08.8877951Z 251 โ โญโโถ return {
2026-10-24T05:20:08.8878158Z 252 โ โ isAvailable: getLocalVoiceTranscriber() !== null || getNativeShowcaseScene() !== null,
2026-10-24T05:20:08.8878236Z 253 โ โ state,
2026-10-24T05:20:08.8878322Z 254 โ โ audioLevels,
2026-10-24T05:20:08.8878415Z 255 โ โ elapsedSeconds,
2026-10-24T05:20:08.8878540Z 256 โ โ isBusy: voiceInputBlocksSubmission(state),
2026-10-24T05:20:08.8878619Z 257 โ โ ownerKey,
2026-10-24T05:20:08.8878701Z 258 โ โ label,
2026-10-24T05:20:08.8878792Z 259 โ โ focusedOwners,
2026-10-24T05:20:08.8878882Z 260 โ โ setOwnerFocused,
2026-10-24T05:20:08.8878961Z 261 โ โ session,
2026-10-24T05:20:08.8879037Z 262 โ โ stop,
2026-10-24T05:20:08.8879115Z 263 โ โ cancel,
2026-10-24T05:20:08.8879240Z 264 โ โโโถ };
2026-10-24T05:20:08.8879434Z ยท โฐโโโโ Cannot access ref value during render
2026-10-24T05:20:08.8879489Z 265 โ }
2026-10-24T05:20:08.8879540Z โฐโโโโ
2026-10-24T05:20:08.8880043Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8880332Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8880334Z
2026-10-24T05:20:08.8880489Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8880645Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:212:7]
2026-10-24T05:20:08.8880798Z 121 โ const audioLevelsRef = useRef(Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0));
2026-10-24T05:20:08.8880918Z 122 โ const audioLevels = useSharedValue(audioLevelsRef.current);
2026-10-24T05:20:08.8880995Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8881132Z ยท โฐโโ `audioLevels` originates here
2026-10-24T05:20:08.8881252Z 123 โ const sessionRef = useRef<VoiceInputSession | null>(null);
2026-10-24T05:20:08.8881395Z 124 โ const recorderRef = useRef<LazyVoiceRecorder<RecorderState> | null>(null);
2026-10-24T05:20:08.8881448Z 125 โ
2026-10-24T05:20:08.8881551Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-24T05:20:08.8881650Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-24T05:20:08.8881786Z 128 โ create: () => new AudioModule.AudioRecorder(VOICE_RECORDING_OPTIONS),
2026-10-24T05:20:08.8881877Z 129 โ onStatus: (status: RecordingStatus) => {
2026-10-24T05:20:08.8881994Z 130 โ sessionRef.current?.controller.handleRecorderStatus({
2026-10-24T05:20:08.8882076Z 131 โ isFinished: status.isFinished,
2026-10-24T05:20:08.8882216Z 132 โ hasError: status.hasError || status.mediaServicesDidReset === true,
2026-10-24T05:20:08.8882338Z 133 โ error: status.error,
2026-10-24T05:20:08.8882433Z 134 โ url: status.url,
2026-10-24T05:20:08.8882490Z 135 โ });
2026-10-24T05:20:08.8882545Z 136 โ },
2026-10-24T05:20:08.8882705Z 137 โ // Read when recording starts so preference changes do not re-render every composer.
2026-10-24T05:20:08.8882781Z 138 โ selectInput: (inputs) => {
2026-10-24T05:20:08.8882900Z 139 โ const preferences = registry.get(mobilePreferencesAtom);
2026-10-24T05:20:08.8883010Z 140 โ if (!AsyncResult.isSuccess(preferences)) return null;
2026-10-24T05:20:08.8883139Z 141 โ const known = microphoneOrder(preferences.value.microphones);
2026-10-24T05:20:08.8883245Z 142 โ const order = rememberMicrophones(known, inputs);
2026-10-24T05:20:08.8883315Z 143 โ if (order !== known) {
2026-10-24T05:20:08.8883425Z 144 โ registry.set(updateMobilePreferencesAtom, {
2026-10-24T05:20:08.8883508Z 145 โ transform: (current) => ({
2026-10-24T05:20:08.8883676Z 146 โ microphones: rememberMicrophones(microphoneOrder(current.microphones), inputs),
2026-10-24T05:20:08.8883736Z 147 โ }),
2026-10-24T05:20:08.8883795Z 148 โ });
2026-10-24T05:20:08.8883852Z 149 โ }
2026-10-24T05:20:08.8883959Z 150 โ return preferredMicrophoneInput(inputs, order);
2026-10-24T05:20:08.8884012Z 151 โ },
2026-10-24T05:20:08.8884067Z 152 โ });
2026-10-24T05:20:08.8884147Z 153 โ recorderRef.current = recorder;
2026-10-24T05:20:08.8884245Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-24T05:20:08.8884304Z 155 โ recorder,
2026-10-24T05:20:08.8884400Z 156 โ getTranscriber: getLocalVoiceTranscriber,
2026-10-24T05:20:08.8884489Z 157 โ requestPermission: async () => {
2026-10-24T05:20:08.8884620Z 158 โ const permission = await requestRecordingPermissionsAsync();
2026-10-24T05:20:08.8884770Z 159 โ return { granted: permission.granted, canAskAgain: permission.canAskAgain };
2026-10-24T05:20:08.8884827Z 160 โ },
2026-10-24T05:20:08.8884934Z 161 โ configureRecording: configureVoiceRecordingAudio,
2026-10-24T05:20:08.8885038Z 162 โ releaseRecording: releaseVoiceRecordingAudio,
2026-10-24T05:20:08.8885137Z 163 โ deleteRecording: (uri) => new File(uri).delete(),
2026-10-24T05:20:08.8885215Z 164 โ onStateChange: (nextState) =>
2026-10-24T05:20:08.8885280Z 165 โ setState({
2026-10-24T05:20:08.8885348Z 166 โ state: nextState,
2026-10-24T05:20:08.8885449Z 167 โ ownerKey: sessionRef.current?.ownerKey ?? null,
2026-10-24T05:20:08.8885546Z 168 โ label: sessionRef.current?.label ?? null,
2026-10-24T05:20:08.8885607Z 169 โ }),
2026-10-24T05:20:08.8885663Z 170 โ });
2026-10-24T05:20:08.8885715Z 171 โ }
2026-10-24T05:20:08.8885767Z 172 โ
2026-10-24T05:20:08.8885850Z 173 โ const session = sessionRef.current;
2026-10-24T05:20:08.8885934Z 174 โ const controller = session.controller;
2026-10-24T05:20:08.8886018Z 175 โ const recorder = recorderRef.current;
2026-10-24T05:20:08.8886069Z 176 โ
2026-10-24T05:20:08.8886133Z 177 โ useEffect(() => {
2026-10-24T05:20:08.8886278Z 178 โ const subscription = AppState.addEventListener("change", (nextState) => {
2026-10-24T05:20:08.8886415Z 179 โ // iOS reports `inactive` while its permission dialog is open. Only the
2026-10-24T05:20:08.8886551Z 180 โ // real background state cancels preparation; recorder status handles
2026-10-24T05:20:08.8886657Z 181 โ // calls and route interruptions during capture.
2026-10-24T05:20:08.8886841Z 182 โ if (nextState === "background") controller.appMovedToBackground();
2026-10-24T05:20:08.8886934Z 183 โ });
2026-10-24T05:20:08.8887016Z 184 โ return () => subscription.remove();
2026-10-24T05:20:08.8887079Z 185 โ }, [controller]);
2026-10-24T05:20:08.8887128Z 186 โ
2026-10-24T05:20:08.8887188Z 187 โ useEffect(
2026-10-24T05:20:08.8887248Z 188 โ () => () => {
2026-10-24T05:20:08.8887318Z 189 โ controller.dispose();
2026-10-24T05:20:08.8887383Z 190 โ recorder.release();
2026-10-24T05:20:08.8887436Z 191 โ },
2026-10-24T05:20:08.8887503Z 192 โ [controller, recorder],
2026-10-24T05:20:08.8887554Z 193 โ );
2026-10-24T05:20:08.8887605Z 194 โ
2026-10-24T05:20:08.8887666Z 195 โ useEffect(() => {
2026-10-24T05:20:08.8887756Z 196 โ if (state.phase !== "recording") return;
2026-10-24T05:20:08.8887805Z 197 โ
2026-10-24T05:20:08.8887956Z 198 โ const tag = `voice-input:${keepAwakeId}:${++keepAwakeSessionRef.current}`;
2026-10-24T05:20:08.8888060Z 199 โ const activation = activateKeepAwakeAsync(tag);
2026-10-24T05:20:08.8888138Z 200 โ void activation.catch(() => {});
2026-10-24T05:20:08.8888199Z 201 โ return () => {
2026-10-24T05:20:08.8888347Z 202 โ // Release after activation settles, even if the recording ends immediately.
2026-10-24T05:20:08.8888482Z 203 โ void activation.then(() => deactivateKeepAwake(tag)).catch(() => {});
2026-10-24T05:20:08.8888535Z 204 โ };
2026-10-24T05:20:08.8888610Z 205 โ }, [keepAwakeId, state.phase]);
2026-10-24T05:20:08.8888661Z 206 โ
2026-10-24T05:20:08.8888723Z 207 โ useEffect(() => {
2026-10-24T05:20:08.8888853Z 208 โ if (state.phase !== "preparing" && state.phase !== "recording") return;
2026-10-24T05:20:08.8888902Z 209 โ
2026-10-24T05:20:08.8889024Z 210 โ if (audioLevelsRef.current.some((level) => level !== 0)) {
2026-10-24T05:20:08.8889180Z 211 โ audioLevelsRef.current = Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0);
2026-10-24T05:20:08.8889280Z 212 โ audioLevels.value = audioLevelsRef.current;
2026-10-24T05:20:08.8889354Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8889490Z ยท โฐโโ `audioLevels` cannot be modified
2026-10-24T05:20:08.8889543Z 213 โ }
2026-10-24T05:20:08.8889604Z โฐโโโโ
2026-10-24T05:20:08.8889894Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8890194Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8890202Z
2026-10-24T05:20:08.8890400Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T05:20:08.8890555Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:212:7]
2026-10-24T05:20:08.8890606Z 206 โ
2026-10-24T05:20:08.8890669Z 207 โ useEffect(() => {
2026-10-24T05:20:08.8890744Z ยท โโโโฌโโโ
2026-10-24T05:20:08.8890957Z ยท โฐโโ This function may (indirectly) reassign or modify `audioLevels` after render
2026-10-24T05:20:08.8891089Z 208 โ if (state.phase !== "preparing" && state.phase !== "recording") return;
2026-10-24T05:20:08.8891139Z 209 โ
2026-10-24T05:20:08.8891258Z 210 โ if (audioLevelsRef.current.some((level) => level !== 0)) {
2026-10-24T05:20:08.8891460Z 211 โ audioLevelsRef.current = Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0);
2026-10-24T05:20:08.8891590Z 212 โ audioLevels.value = audioLevelsRef.current;
2026-10-24T05:20:08.8891666Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8891795Z ยท โฐโโ This modifies `audioLevels`
2026-10-24T05:20:08.8891850Z 213 โ }
2026-10-24T05:20:08.8891899Z โฐโโโโ
2026-10-24T05:20:08.8892232Z help: This argument is a function which may reassign or mutate `audioLevels` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T05:20:08.8892530Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8892532Z
2026-10-24T05:20:08.8892688Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8892855Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:93:5]
2026-10-24T05:20:08.8892908Z 90 โ }) {
2026-10-24T05:20:08.8893016Z 91 โ const rotation = useSharedValue(props.hidden ? 1 : 0);
2026-10-24T05:20:08.8893089Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8893216Z ยท โฐโโ `rotation` originates here
2026-10-24T05:20:08.8893283Z 92 โ useLayoutEffect(() => {
2026-10-24T05:20:08.8893420Z 93 โ rotation.value = withTiming(props.hidden ? 1 : 0, TOOLBAR_FLIP_TIMING);
2026-10-24T05:20:08.8893489Z ยท โโโโโฌโโโ
2026-10-24T05:20:08.8893617Z ยท โฐโโ `rotation` cannot be modified
2026-10-24T05:20:08.8893689Z 94 โ }, [props.hidden, rotation]);
2026-10-24T05:20:08.8893739Z โฐโโโโ
2026-10-24T05:20:08.8894002Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8894298Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8894301Z
2026-10-24T05:20:08.8894452Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8894619Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:269:5]
2026-10-24T05:20:08.8894710Z 266 โ const variant = props.variant ?? "plain";
2026-10-24T05:20:08.8894840Z 267 โ const loadingVisibility = useSharedValue(props.loading ? 1 : 0);
2026-10-24T05:20:08.8894923Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8895074Z ยท โฐโโ `loadingVisibility` originates here
2026-10-24T05:20:08.8895146Z 268 โ useLayoutEffect(() => {
2026-10-24T05:20:08.8895298Z 269 โ loadingVisibility.value = withTiming(props.loading ? 1 : 0, DICTATION_TIMING);
2026-10-24T05:20:08.8895377Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8895522Z ยท โฐโโ `loadingVisibility` cannot be modified
2026-10-24T05:20:08.8895610Z 270 โ }, [loadingVisibility, props.loading]);
2026-10-24T05:20:08.8895667Z โฐโโโโ
2026-10-24T05:20:08.8895921Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8896220Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8896272Z
2026-10-24T05:20:08.8896456Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8896621Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:328:5]
2026-10-24T05:20:08.8896673Z 325 โ }) {
2026-10-24T05:20:08.8896828Z 326 โ const recordingVisibility = useSharedValue(props.phase === "recording" ? 1 : 0);
2026-10-24T05:20:08.8896915Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8897063Z ยท โฐโโ `recordingVisibility` originates here
2026-10-24T05:20:08.8897132Z 327 โ useLayoutEffect(() => {
2026-10-24T05:20:08.8897314Z 328 โ recordingVisibility.value = withTiming(props.phase === "recording" ? 1 : 0, DICTATION_TIMING);
2026-10-24T05:20:08.8897398Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8897553Z ยท โฐโโ `recordingVisibility` cannot be modified
2026-10-24T05:20:08.8897645Z 329 โ }, [props.phase, recordingVisibility]);
2026-10-24T05:20:08.8897694Z โฐโโโโ
2026-10-24T05:20:08.8897951Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8898245Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8898248Z
2026-10-24T05:20:08.8898390Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8898551Z โญโ[apps/mobile/src/features/voice-input/useVoiceInputController.ts:27:14]
2026-10-24T05:20:08.8898630Z 26 โ const latestInput = useRef(input);
2026-10-24T05:20:08.8898709Z 27 โ latestInput.current = input;
2026-10-24T05:20:08.8898820Z ยท โโโโโโฌโโโโโโโโโโฌโโโ
2026-10-24T05:20:08.8898999Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T05:20:08.8899111Z ยท โฐโโ This value is a ref
2026-10-24T05:20:08.8899186Z 28 โ const mounted = useRef(true);
2026-10-24T05:20:08.8899236Z โฐโโโโ
2026-10-24T05:20:08.8899731Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8900070Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8900103Z
2026-10-24T05:20:08.8900282Z โ eslint(no-unused-vars): Type 'Scope' is imported but never used.
2026-10-24T05:20:08.8900416Z โญโ[apps/server/src/provider/ProviderAuthService.ts:15:18]
2026-10-24T05:20:08.8900501Z 14 โ import * as Layer from "effect/Layer";
2026-10-24T05:20:08.8900592Z 15 โ import type * as Scope from "effect/Scope";
2026-10-24T05:20:08.8900668Z ยท โโโฌโโ
2026-10-24T05:20:08.8900799Z ยท โฐโโ 'Scope' is imported here
2026-10-24T05:20:08.8900883Z 16 โ import * as Stream from "effect/Stream";
2026-10-24T05:20:08.8900933Z โฐโโโโ
2026-10-24T05:20:08.8903074Z help: Consider removing this import.
2026-10-24T05:20:08.8903078Z
2026-10-24T05:20:08.8903257Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8903420Z โญโ[apps/mobile/src/features/layout/workspace-inspector-pane.tsx:42:5]
2026-10-24T05:20:08.8903472Z 35 โ
2026-10-24T05:20:08.8903609Z 36 โ const inspectorProgress = useSharedValue(inspectorVisible ? 1 : 0);
2026-10-24T05:20:08.8903695Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8903839Z ยท โฐโโ `inspectorProgress` originates here
2026-10-24T05:20:08.8903930Z 37 โ const { renderedInspectorWidth } = props;
2026-10-24T05:20:08.8904060Z 38 โ const renderedContentWidth = useSharedValue(inspectorWidth ?? 0);
2026-10-24T05:20:08.8904111Z 39 โ
2026-10-24T05:20:08.8904189Z 40 โ const onClosed = props.onClosed;
2026-10-24T05:20:08.8904253Z 41 โ useEffect(() => {
2026-10-24T05:20:08.8904340Z 42 โ inspectorProgress.value = withTiming(
2026-10-24T05:20:08.8904425Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T05:20:08.8904572Z ยท โฐโโ `inspectorProgress` cannot be modified
2026-10-24T05:20:08.8904646Z 43 โ inspectorVisible ? 1 : 0,
2026-10-24T05:20:08.8904696Z โฐโโโโ
2026-10-24T05:20:08.8904952Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8905250Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8905252Z
2026-10-24T05:20:08.8905403Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8905559Z โญโ[apps/mobile/src/features/layout/workspace-inspector-pane.tsx:67:7]
2026-10-24T05:20:08.8905654Z 37 โ const { renderedInspectorWidth } = props;
2026-10-24T05:20:08.8905783Z 38 โ const renderedContentWidth = useSharedValue(inspectorWidth ?? 0);
2026-10-24T05:20:08.8905871Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8906021Z ยท โฐโโ `renderedContentWidth` originates here
2026-10-24T05:20:08.8906074Z 39 โ
2026-10-24T05:20:08.8906151Z 40 โ const onClosed = props.onClosed;
2026-10-24T05:20:08.8906215Z 41 โ useEffect(() => {
2026-10-24T05:20:08.8906302Z 42 โ inspectorProgress.value = withTiming(
2026-10-24T05:20:08.8906375Z 43 โ inspectorVisible ? 1 : 0,
2026-10-24T05:20:08.8906443Z 44 โ WORKSPACE_PANE_TIMING,
2026-10-24T05:20:08.8906508Z 45 โ (finished) => {
2026-10-24T05:20:08.8906646Z 46 โ if (finished === true && !inspectorVisible && onClosed !== undefined) {
2026-10-24T05:20:08.8906786Z 47 โ runOnJS(onClosed)();
2026-10-24T05:20:08.8906874Z 48 โ }
2026-10-24T05:20:08.8906928Z 49 โ },
2026-10-24T05:20:08.8906982Z 50 โ );
2026-10-24T05:20:08.8907111Z 51 โ const targetWidth = inspectorVisible ? (inspectorWidth ?? 0) : 0;
2026-10-24T05:20:08.8907188Z 52 โ renderedInspectorWidth.set(
2026-10-24T05:20:08.8907328Z 53 โ resizing ? targetWidth : withTiming(targetWidth, WORKSPACE_PANE_TIMING),
2026-10-24T05:20:08.8907382Z 54 โ );
2026-10-24T05:20:08.8907433Z 55 โ }, [
2026-10-24T05:20:08.8907500Z 56 โ inspectorProgress,
2026-10-24T05:20:08.8907564Z 57 โ inspectorVisible,
2026-10-24T05:20:08.8907626Z 58 โ inspectorWidth,
2026-10-24T05:20:08.8907683Z 59 โ onClosed,
2026-10-24T05:20:08.8907753Z 60 โ renderedInspectorWidth,
2026-10-24T05:20:08.8907811Z 61 โ resizing,
2026-10-24T05:20:08.8907869Z 62 โ ]);
2026-10-24T05:20:08.8907920Z 63 โ
2026-10-24T05:20:08.8907983Z 64 โ useEffect(() => {
2026-10-24T05:20:08.8908073Z 65 โ const targetWidth = inspectorWidth ?? 0;
2026-10-24T05:20:08.8908156Z 66 โ if (!inspectorVisible || resizing) {
2026-10-24T05:20:08.8908250Z 67 โ renderedContentWidth.value = targetWidth;
2026-10-24T05:20:08.8908336Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T05:20:08.8908494Z ยท โฐโโ `renderedContentWidth` cannot be modified
2026-10-24T05:20:08.8908552Z 68 โ return;
2026-10-24T05:20:08.8908602Z โฐโโโโ
2026-10-24T05:20:08.8908860Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8909166Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8909171Z
2026-10-24T05:20:08.8909335Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8909478Z โญโ[apps/web/src/components/chat/useThreadLifecycle.tsx:178:58]
2026-10-24T05:20:08.8909600Z 177 โ if (snoozeClockState.shell !== activeThreadShell) {
2026-10-24T05:20:08.8909787Z 178 โ setSnoozeClockState({ shell: activeThreadShell, now: new Date().toISOString() });
2026-10-24T05:20:08.8909910Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8910075Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8910128Z 179 โ }
2026-10-24T05:20:08.8910179Z โฐโโโโ
2026-10-24T05:20:08.8910456Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8910746Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8910750Z
2026-10-24T05:20:08.8910986Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8911144Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:155:7]
2026-10-24T05:20:08.8911197Z 154 โ }
2026-10-24T05:20:08.8911266Z 155 โ }, [wrappedRender]);
2026-10-24T05:20:08.8911343Z ยท โโโโโโโฌโโโโโโ
2026-10-24T05:20:08.8911566Z ยท โฐโโ Unnecessary dependency `wrappedRender`
2026-10-24T05:20:08.8911656Z 156 โ
2026-10-24T05:20:08.8911706Z โฐโโโโ
2026-10-24T05:20:08.8911990Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8912294Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8912297Z
2026-10-24T05:20:08.8912531Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-24T05:20:08.8912688Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:800:42]
2026-10-24T05:20:08.8912741Z 799 โ >
2026-10-24T05:20:08.8912869Z 800 โ <AdaptiveWorkspaceContext.Provider value={contextValue}>
2026-10-24T05:20:08.8912994Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8913096Z 801 โ <WindowHingeContext value={windowHinge}>
2026-10-24T05:20:08.8913147Z โฐโโโโ
2026-10-24T05:20:08.8913368Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-24T05:20:08.8913505Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-24T05:20:08.8913507Z
2026-10-24T05:20:08.8913783Z โ eslint(no-unused-vars): Parameter 'stopSessions' is declared but never used. Unused parameters should start with a '_'.
2026-10-24T05:20:08.8913910Z โญโ[apps/server/src/provider/AntigravityAuth.ts:285:20]
2026-10-24T05:20:08.8913964Z 284 โ },
2026-10-24T05:20:08.8914050Z 285 โ (effect, flow, stopSessions) =>
2026-10-24T05:20:08.8914142Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8914286Z ยท โฐโโ 'stopSessions' is declared here
2026-10-24T05:20:08.8914348Z 286 โ effect.pipe(
2026-10-24T05:20:08.8914398Z โฐโโโโ
2026-10-24T05:20:08.8914497Z help: Consider removing this parameter.
2026-10-24T05:20:08.8914500Z
2026-10-24T05:20:08.8914754Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8914921Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:643:5]
2026-10-24T05:20:08.8914974Z 638 โ
2026-10-24T05:20:08.8915039Z 639 โ useEffect(() => {
2026-10-24T05:20:08.8915109Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8915241Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8915351Z 640 โ if (pendingLaunchEntry.key === launchTargetKey) {
2026-10-24T05:20:08.8915411Z 641 โ return;
2026-10-24T05:20:08.8915464Z 642 โ }
2026-10-24T05:20:08.8915536Z 643 โ setPendingLaunchEntry({
2026-10-24T05:20:08.8915621Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8915788Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8915858Z 644 โ key: launchTargetKey,
2026-10-24T05:20:08.8915907Z โฐโโโโ
2026-10-24T05:20:08.8916551Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8916898Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8916900Z
2026-10-24T05:20:08.8917155Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8917320Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:653:5]
2026-10-24T05:20:08.8917371Z 648 โ
2026-10-24T05:20:08.8917435Z 649 โ useEffect(() => {
2026-10-24T05:20:08.8917504Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8917630Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8917742Z 650 โ if (initialAttachGridEntry.key === launchTargetKey) {
2026-10-24T05:20:08.8917806Z 651 โ return;
2026-10-24T05:20:08.8917861Z 652 โ }
2026-10-24T05:20:08.8917938Z 653 โ setInitialAttachGridEntry({
2026-10-24T05:20:08.8918030Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T05:20:08.8918199Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8918268Z 654 โ key: launchTargetKey,
2026-10-24T05:20:08.8918318Z โฐโโโโ
2026-10-24T05:20:08.8918901Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8919218Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8919223Z
2026-10-24T05:20:08.8919472Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T05:20:08.8919669Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:746:7]
2026-10-24T05:20:08.8919720Z 743 โ
2026-10-24T05:20:08.8919784Z 744 โ useEffect(() => {
2026-10-24T05:20:08.8919852Z ยท โโโโโฌโโโโ
2026-10-24T05:20:08.8919975Z ยท โฐโโ This is the containing effect
2026-10-24T05:20:08.8920074Z 745 โ if (!routeEnvironmentId || !routeThreadId) {
2026-10-24T05:20:08.8920142Z 746 โ setLastGridSize({
2026-10-24T05:20:08.8920222Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T05:20:08.8920393Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T05:20:08.8920475Z 747 โ cols: DEFAULT_TERMINAL_COLS,
2026-10-24T05:20:08.8920526Z โฐโโโโ
2026-10-24T05:20:08.8921106Z help: Effects should synchronize React with external systems. Calling setState synchronously inside an effect starts another render and is usually unnecessary. Derive the value during render, initialize state directly, or update it from the event that caused the change. Use an effect only when synchronizing with an external system.
2026-10-24T05:20:08.8921420Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
2026-10-24T05:20:08.8921422Z
2026-10-24T05:20:08.8921728Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8921922Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:538:24]
2026-10-24T05:20:08.8921979Z 537 โ });
2026-10-24T05:20:08.8922105Z 538 โ }, [terminal.buffer, terminal.buffer.length, terminalKey]);
2026-10-24T05:20:08.8922214Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T05:20:08.8922451Z ยท โฐโโ Overly precise dependency `terminal.buffer.length`, use `terminal.buffer` instead
2026-10-24T05:20:08.8922612Z 539 โ const cwd = terminal.summary?.cwd ?? selectedThreadProject?.workspaceRoot ?? null;
2026-10-24T05:20:08.8922664Z โฐโโโโ
2026-10-24T05:20:08.8922952Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8923261Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8923266Z
2026-10-24T05:20:08.8923460Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8923624Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:709:7]
2026-10-24T05:20:08.8923718Z 708 โ sentInitialInputKeyRef.current = null;
2026-10-24T05:20:08.8923784Z 709 โ }, [terminalKey]);
2026-10-24T05:20:08.8923858Z ยท โโโโโโฌโโโโโ
2026-10-24T05:20:08.8923998Z ยท โฐโโ Unnecessary dependency `terminalKey`
2026-10-24T05:20:08.8924051Z 710 โ
2026-10-24T05:20:08.8924101Z โฐโโโโ
2026-10-24T05:20:08.8924388Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8924691Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8924694Z
2026-10-24T05:20:08.8924889Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T05:20:08.8925053Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:800:52]
2026-10-24T05:20:08.8925107Z 799 โ };
2026-10-24T05:20:08.8925280Z 800 โ }, [canOperateTerminal, isRunning, pasteSession, terminal.lifecycleVersion, terminalKey]);
2026-10-24T05:20:08.8925454Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ โโโโโโฌโโโโโ
2026-10-24T05:20:08.8925728Z ยท โ โฐโโ Unnecessary dependency `terminalKey`
2026-10-24T05:20:08.8925963Z ยท โฐโโ Unnecessary dependency `terminal.lifecycleVersion`
2026-10-24T05:20:08.8926014Z 801 โ
2026-10-24T05:20:08.8926064Z โฐโโโโ
2026-10-24T05:20:08.8926347Z help: Extra dependencies can cause an effect to fire more often than it should, resulting in performance problems such as excessive renders and side effects
2026-10-24T05:20:08.8926647Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8926650Z
2026-10-24T05:20:08.8926796Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8926960Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:793:24]
2026-10-24T05:20:08.8927015Z 792 โ }
2026-10-24T05:20:08.8927120Z 793 โ const pasteSession = pasteSessionRef.current;
2026-10-24T05:20:08.8927231Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8927388Z ยท โฐโโ Cannot access ref value during render
2026-10-24T05:20:08.8927439Z 794 โ
2026-10-24T05:20:08.8927493Z โฐโโโโ
2026-10-24T05:20:08.8927951Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8928243Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8928248Z
2026-10-24T05:20:08.8928412Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8928567Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:697:76]
2026-10-24T05:20:08.8928745Z 696 โ const [snoozeGateClock, setSnoozeGateClock] = useState(() => ({ thread, now: Date.now() }));
2026-10-24T05:20:08.8928909Z 697 โ if (snoozeGateClock.thread !== thread) setSnoozeGateClock({ thread, now: Date.now() });
2026-10-24T05:20:08.8929042Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8929224Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8929359Z 698 โ const snoozeGateNow = new Date(snoozeGateClock.now).toISOString();
2026-10-24T05:20:08.8929409Z โฐโโโโ
2026-10-24T05:20:08.8929717Z help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8930004Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8930007Z
2026-10-24T05:20:08.8930168Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8930320Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:718:71]
2026-10-24T05:20:08.8930399Z 717 โ const snoozePresets = useMemo(
2026-10-24T05:20:08.8930616Z 718 โ () => (swipeActions.secondary === "snooze" ? resolveSnoozePresets(new Date()) : ([] as const)),
2026-10-24T05:20:08.8930771Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8930946Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8931061Z 719 โ [props.snoozePresetMinute, swipeActions.secondary],
2026-10-24T05:20:08.8931110Z โฐโโโโ
2026-10-24T05:20:08.8931381Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8931668Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8931671Z
2026-10-24T05:20:08.8931851Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-24T05:20:08.8932005Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:719:6]
2026-10-24T05:20:08.8932173Z 718 โ () => (swipeActions.secondary === "snooze" ? resolveSnoozePresets(new Date()) : ([] as const)),
2026-10-24T05:20:08.8932285Z 719 โ [props.snoozePresetMinute, swipeActions.secondary],
2026-10-24T05:20:08.8932377Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T05:20:08.8932548Z ยท โฐโโ Unnecessary dependency `props.snoozePresetMinute`
2026-10-24T05:20:08.8932601Z 720 โ );
2026-10-24T05:20:08.8932651Z โฐโโโโ
2026-10-24T05:20:08.8932962Z help: Extra dependencies can cause a value to update more often than it should, resulting in performance problems such as excessive renders or effects firing too often
2026-10-24T05:20:08.8933267Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8933269Z
2026-10-24T05:20:08.8933444Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-24T05:20:08.8933596Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:765:7]
2026-10-24T05:20:08.8933665Z 764 โ thread.pinnedAt,
2026-10-24T05:20:08.8933727Z 765 โ variant,
2026-10-24T05:20:08.8933796Z ยท โโโโฌโโโ
2026-10-24T05:20:08.8933930Z ยท โฐโโ Unnecessary dependency `variant`
2026-10-24T05:20:08.8933984Z 766 โ ],
2026-10-24T05:20:08.8934034Z โฐโโโโ
2026-10-24T05:20:08.8934346Z help: Extra dependencies can cause a value to update more often than it should, resulting in performance problems such as excessive renders or effects firing too often
2026-10-24T05:20:08.8934652Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T05:20:08.8934654Z
2026-10-24T05:20:08.8934843Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T05:20:08.8935000Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:1215:21]
2026-10-24T05:20:08.8935126Z 1214 โ {providerDrivers.slice(0, -1).map((driver, index) => (
2026-10-24T05:20:08.8935256Z 1215 โ <View key={`${driver}:${index}`} className="-mr-1 opacity-30">
2026-10-24T05:20:08.8935425Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8935561Z 1216 โ <ProviderIcon provider={driver} size={12} />
2026-10-24T05:20:08.8935614Z โฐโโโโ
2026-10-24T05:20:08.8935758Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T05:20:08.8935761Z
2026-10-24T05:20:08.8935945Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-24T05:20:08.8936095Z โญโ[apps/mobile/src/features/threads/ThreadQueueControl.tsx:602:27]
2026-10-24T05:20:08.8936261Z 601 โ const onEnd = useEffectEvent((y: number, success: boolean) => props.onEnd(y, success));
2026-10-24T05:20:08.8936337Z 602 โ const gesture = Gesture.Pan()
2026-10-24T05:20:08.8936421Z ยท โโฌโ
2026-10-24T05:20:08.8936559Z ยท โฐโโ `Pan` may be a component
2026-10-24T05:20:08.8936638Z 603 โ .enabled(!props.disabled)
2026-10-24T05:20:08.8936690Z โฐโโโโ
2026-10-24T05:20:08.8936958Z help: Render `Pan` with JSX if it is a component; otherwise rename it to start with a lowercase letter or allowlist it in the compiler configuration
2026-10-24T05:20:08.8937394Z note: `Pan` is treated as a component because it begins with an uppercase letter; React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-24T05:20:08.8937396Z
2026-10-24T05:20:08.8937626Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-24T05:20:08.8937760Z โญโ[apps/web/src/components/chat/useComposerSend.ts:985:13]
2026-10-24T05:20:08.8937883Z 984 โ const changedBeforeDecline = draftChangedSinceSend();
2026-10-24T05:20:08.8938122Z 985 โ โญโโถ const pendingIdsBeforeDecline = pendingApprovalsRef.current.map(
2026-10-24T05:20:08.8938240Z 986 โ โ (approval) => approval.requestId,
2026-10-24T05:20:08.8938369Z 987 โ โฐโโถ );
2026-10-24T05:20:08.8938503Z 988 โ const approvalResponding = approvalsToDecline.some((approval) =>
2026-10-24T05:20:08.8938554Z โฐโโโโ
2026-10-24T05:20:08.8938628Z help: Switch to `Set`
2026-10-24T05:20:08.8938632Z
2026-10-24T05:20:08.8938785Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8938935Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-24T05:20:08.8938987Z 86 โ
2026-10-24T05:20:08.8939082Z 87 โ const cardCoverage = props.cardCoverage;
2026-10-24T05:20:08.8939163Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8939296Z ยท โฐโโ `cardCoverage` originates here
2026-10-24T05:20:08.8939375Z 88 โ const barHeightRef = useRef(0);
2026-10-24T05:20:08.8939453Z 89 โ const cardHeightRef = useRef(0);
2026-10-24T05:20:08.8939536Z 90 โ const cardHeight = useSharedValue(0);
2026-10-24T05:20:08.8939636Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-24T05:20:08.8939729Z 92 โ if (!cardCoverage) {
2026-10-24T05:20:08.8939789Z 93 โ return;
2026-10-24T05:20:08.8939842Z 94 โ }
2026-10-24T05:20:08.8939988Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-24T05:20:08.8940075Z 96 โ if (coverage === cardCoverage.value) {
2026-10-24T05:20:08.8940184Z 97 โ return;
2026-10-24T05:20:08.8940267Z 98 โ }
2026-10-24T05:20:08.8940344Z 99 โ if (cardCoverage.value === 0) {
2026-10-24T05:20:08.8940423Z 100 โ cardCoverage.value = coverage;
2026-10-24T05:20:08.8940500Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8940640Z ยท โฐโโ `cardCoverage` cannot be modified
2026-10-24T05:20:08.8940699Z 101 โ return;
2026-10-24T05:20:08.8940750Z โฐโโโโ
2026-10-24T05:20:08.8941037Z help: Do not mutate component props or hook arguments. If the value should change, update it where it is owned and pass an update callback, or use local state
2026-10-24T05:20:08.8941334Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8941337Z
2026-10-24T05:20:08.8941492Z โ react(immutability): This value cannot be modified
2026-10-24T05:20:08.8941644Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:118:7]
2026-10-24T05:20:08.8941722Z 89 โ const cardHeightRef = useRef(0);
2026-10-24T05:20:08.8941805Z 90 โ const cardHeight = useSharedValue(0);
2026-10-24T05:20:08.8941880Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8942011Z ยท โฐโโ `cardHeight` originates here
2026-10-24T05:20:08.8942102Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-24T05:20:08.8942168Z 92 โ if (!cardCoverage) {
2026-10-24T05:20:08.8942225Z 93 โ return;
2026-10-24T05:20:08.8942280Z 94 โ }
2026-10-24T05:20:08.8942423Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-24T05:20:08.8942512Z 96 โ if (coverage === cardCoverage.value) {
2026-10-24T05:20:08.8942570Z 97 โ return;
2026-10-24T05:20:08.8942622Z 98 โ }
2026-10-24T05:20:08.8942697Z 99 โ if (cardCoverage.value === 0) {
2026-10-24T05:20:08.8942777Z 100 โ cardCoverage.value = coverage;
2026-10-24T05:20:08.8942836Z 101 โ return;
2026-10-24T05:20:08.8942888Z 102 โ }
2026-10-24T05:20:08.8942985Z 103 โ cardCoverage.value = withTiming(coverage, {
2026-10-24T05:20:08.8943079Z 104 โ duration: USER_INPUT_TOGGLE_DURATION_MS,
2026-10-24T05:20:08.8943164Z 105 โ easing: Easing.out(Easing.cubic),
2026-10-24T05:20:08.8943219Z 106 โ });
2026-10-24T05:20:08.8943284Z 107 โ }, [cardCoverage]);
2026-10-24T05:20:08.8943365Z 108 โ const handleBarLayout = useCallback(
2026-10-24T05:20:08.8943443Z 109 โ (event: LayoutChangeEvent) => {
2026-10-24T05:20:08.8943569Z 110 โ barHeightRef.current = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8943638Z 111 โ notifyCoverage();
2026-10-24T05:20:08.8943691Z 112 โ },
2026-10-24T05:20:08.8943754Z 113 โ [notifyCoverage],
2026-10-24T05:20:08.8943805Z 114 โ );
2026-10-24T05:20:08.8943888Z 115 โ const handleCardLayout = useCallback(
2026-10-24T05:20:08.8943965Z 116 โ (event: LayoutChangeEvent) => {
2026-10-24T05:20:08.8944089Z 117 โ cardHeightRef.current = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8944197Z 118 โ cardHeight.value = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8944272Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8944406Z ยท โฐโโ `cardHeight` cannot be modified
2026-10-24T05:20:08.8944472Z 119 โ notifyCoverage();
2026-10-24T05:20:08.8944521Z โฐโโโโ
2026-10-24T05:20:08.8944835Z help: Modifying a value returned from a hook is not allowed. Consider moving the modification into the hook where the value is constructed
2026-10-24T05:20:08.8945165Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8945167Z
2026-10-24T05:20:08.8945363Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T05:20:08.8945515Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-24T05:20:08.8945597Z 90 โ const cardHeight = useSharedValue(0);
2026-10-24T05:20:08.8945687Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-24T05:20:08.8945789Z ยท โโโโฌโโโ
2026-10-24T05:20:08.8946027Z ยท โฐโโ This function may (indirectly) reassign or modify `cardCoverage` after render
2026-10-24T05:20:08.8946094Z 92 โ if (!cardCoverage) {
2026-10-24T05:20:08.8946153Z 93 โ return;
2026-10-24T05:20:08.8946204Z 94 โ }
2026-10-24T05:20:08.8946349Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-24T05:20:08.8946432Z 96 โ if (coverage === cardCoverage.value) {
2026-10-24T05:20:08.8946488Z 97 โ return;
2026-10-24T05:20:08.8946540Z 98 โ }
2026-10-24T05:20:08.8946617Z 99 โ if (cardCoverage.value === 0) {
2026-10-24T05:20:08.8946696Z 100 โ cardCoverage.value = coverage;
2026-10-24T05:20:08.8946771Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8946905Z ยท โฐโโ This modifies `cardCoverage`
2026-10-24T05:20:08.8946967Z 101 โ return;
2026-10-24T05:20:08.8947020Z โฐโโโโ
2026-10-24T05:20:08.8947353Z help: This argument is a function which may reassign or mutate `cardCoverage` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T05:20:08.8947649Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8947651Z
2026-10-24T05:20:08.8947845Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T05:20:08.8947994Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-24T05:20:08.8948072Z 99 โ if (cardCoverage.value === 0) {
2026-10-24T05:20:08.8948153Z 100 โ cardCoverage.value = coverage;
2026-10-24T05:20:08.8948231Z ยท โโโโโโโฌโโโโโ
2026-10-24T05:20:08.8948360Z ยท โฐโโ This modifies `cardCoverage`
2026-10-24T05:20:08.8948419Z 101 โ return;
2026-10-24T05:20:08.8948471Z 102 โ }
2026-10-24T05:20:08.8948570Z 103 โ cardCoverage.value = withTiming(coverage, {
2026-10-24T05:20:08.8948663Z 104 โ duration: USER_INPUT_TOGGLE_DURATION_MS,
2026-10-24T05:20:08.8948745Z 105 โ easing: Easing.out(Easing.cubic),
2026-10-24T05:20:08.8948799Z 106 โ });
2026-10-24T05:20:08.8948863Z 107 โ }, [cardCoverage]);
2026-10-24T05:20:08.8948944Z 108 โ const handleBarLayout = useCallback(
2026-10-24T05:20:08.8949021Z 109 โ (event: LayoutChangeEvent) => {
2026-10-24T05:20:08.8949124Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8949400Z ยท โฐโโ This function may (indirectly) reassign or modify `cardCoverage` after render
2026-10-24T05:20:08.8949566Z 110 โ barHeightRef.current = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8949618Z โฐโโโโ
2026-10-24T05:20:08.8949971Z help: This argument is a function which may reassign or mutate `cardCoverage` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T05:20:08.8950267Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8950269Z
2026-10-24T05:20:08.8950465Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T05:20:08.8950615Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:118:7]
2026-10-24T05:20:08.8950702Z 115 โ const handleCardLayout = useCallback(
2026-10-24T05:20:08.8950783Z 116 โ (event: LayoutChangeEvent) => {
2026-10-24T05:20:08.8950940Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8951156Z ยท โฐโโ This function may (indirectly) reassign or modify `cardHeight` after render
2026-10-24T05:20:08.8951280Z 117 โ cardHeightRef.current = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8951392Z 118 โ cardHeight.value = event.nativeEvent.layout.height;
2026-10-24T05:20:08.8951464Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8951592Z ยท โฐโโ This modifies `cardHeight`
2026-10-24T05:20:08.8951658Z 119 โ notifyCoverage();
2026-10-24T05:20:08.8951708Z โฐโโโโ
2026-10-24T05:20:08.8952039Z help: This argument is a function which may reassign or mutate `cardHeight` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T05:20:08.8952338Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T05:20:08.8952341Z
2026-10-24T05:20:08.8952483Z โ react(refs): Cannot access refs during render
2026-10-24T05:20:08.8952637Z โญโ[apps/mobile/src/features/diffs/nativeReviewDiffSurface.ts:277:39]
2026-10-24T05:20:08.8952691Z 276 โ
2026-10-24T05:20:08.8952867Z 277 โ โญโโถ return createElement(RawNativeView, {
2026-10-24T05:20:08.8952958Z 278 โ โ ...nativeProps,
2026-10-24T05:20:08.8953167Z 279 โ โ refreshEnabled: props.onPullToRefresh !== undefined,
2026-10-24T05:20:08.8953294Z 280 โ โ ref: nativeRef,
2026-10-24T05:20:08.8953419Z 281 โ โโโถ });
2026-10-24T05:20:08.8953649Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-24T05:20:08.8953703Z 282 โ }
2026-10-24T05:20:08.8953754Z โฐโโโโ
2026-10-24T05:20:08.8954211Z help: React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected
2026-10-24T05:20:08.8954500Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T05:20:08.8954507Z
2026-10-24T05:20:08.8954687Z โ unicorn(no-new-array): Do not use `new Array(singleArgument)`.
2026-10-24T05:20:08.8954805Z โญโ[apps/web/src/terminal/ghostty/core.ts:194:19]
2026-10-24T05:20:08.8954926Z 193 โ const count = Math.min(CHUNK_SIZE, graphemeLength - start);
2026-10-24T05:20:08.8955014Z 194 โ const codes = new Array<number>(count);
2026-10-24T05:20:08.8955119Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T05:20:08.8955220Z 195 โ for (let index = 0; index < count; index += 1) {
2026-10-24T05:20:08.8955271Z โฐโโโโ
2026-10-24T05:20:08.8955679Z help: It's not clear whether the argument is meant to be the length of the array or the only element. If the argument is the array's length, consider using `Array.from({ length: n })`. If the argument is the only element, use `[element]`.
2026-10-24T05:20:08.8955688Z
2026-10-24T05:20:08.8955854Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8955972Z โญโ[apps/web/src/hooks/useThreadActions.ts:821:56]
2026-10-24T05:20:08.8956072Z 820 โ const resolved = resolveThreadTarget(target);
2026-10-24T05:20:08.8956225Z 821 โ if (resolved && !canSnooze(resolved.thread, { now: new Date().toISOString() })) {
2026-10-24T05:20:08.8956341Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8956506Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8956588Z 822 โ return AsyncResult.failure(
2026-10-24T05:20:08.8956639Z โฐโโโโ
2026-10-24T05:20:08.8956915Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8957203Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8957206Z
2026-10-24T05:20:08.8957368Z โ react(purity): Cannot call impure function during render
2026-10-24T05:20:08.8957484Z โญโ[apps/web/src/hooks/useThreadActions.ts:709:46]
2026-10-24T05:20:08.8957553Z 708 โ const wokeAt = resolved
2026-10-24T05:20:08.8957685Z 709 โ ? threadWokeAt(resolved.thread, { now: new Date().toISOString() })
2026-10-24T05:20:08.8957795Z ยท โโโโโโฌโโโโ
2026-10-24T05:20:08.8958001Z ยท โฐโโ Cannot call impure function
2026-10-24T05:20:08.8958089Z 710 โ : null;
2026-10-24T05:20:08.8958140Z โฐโโโโ
2026-10-24T05:20:08.8958408Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T05:20:08.8958690Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T05:20:08.8958692Z
2026-10-24T05:20:08.8958773Z Found 0 errors and 362 warnings in 5420 files (4.9s, 8 threads)
2026-10-24T05:20:08.9367222Z Post job cleanup.
2026-10-24T05:20:08.9951021Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-24T05:20:09.0011287Z Post job cleanup.
2026-10-24T05:20:09.0933581Z ##[start-action display=Cache full pnpm store;id=__147d3655-218b-44a6-9660-f2c83d79c994.__actions_cache]
2026-10-24T05:20:09.1224788Z Post job cleanup.
2026-10-24T05:20:09.1858173Z [command]/usr/bin/tar --posix -cf cache.tzst --exclude cache.tzst -P -C /home/runner/_work/t3code/t3code --files-from manifest.txt --use-compress-program zstdmt
2026-10-24T05:20:12.7490450Z Failed to save: Unable to reserve cache with key pnpm-full-v1-Linux-X64-8600a8d4a7fcc9519d421cef0c77201c793c5d8afbbef2897636b5b9305a9b7d, another job may be creating this cache.
2026-10-24T05:20:12.7950274Z ##[end-action id=__147d3655-218b-44a6-9660-f2c83d79c994.__actions_cache;outcome=success;conclusion=success;duration_ms=3701]
2026-10-24T05:20:12.7951980Z ##[start-action display=Cache Vite+;id=__147d3655-218b-44a6-9660-f2c83d79c994.vp_cache]
2026-10-24T05:20:12.7982658Z Post job cleanup.
2026-10-24T05:20:12.8601984Z Cache hit occurred on the primary key vite-plus-home-v2-Linux-X64-1.3.0-node26.12.1-pnpm@12.14.0, not saving cache.
2026-10-24T05:20:12.8630219Z ##[end-action id=__147d3655-218b-44a6-9660-f2c83d79c994.vp_cache;outcome=success;conclusion=success;duration_ms=67]
2026-10-24T05:20:12.8664057Z Post job cleanup.
2026-10-24T05:20:12.9035731Z [command]/usr/local/bin/git version
2026-10-24T05:20:12.9061319Z git version 2.55.0
2026-10-24T05:20:12.9077885Z Temporarily overriding HOME='/home/runner/_work/_temp/fb0d8d89-3aa5-4ce1-8c2c-bdec9e0cdeae' before making global git config changes
2026-10-24T05:20:12.9078237Z Adding repository directory to the temporary git global config as a safe directory
2026-10-24T05:20:12.9080756Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-24T05:20:12.9100672Z Removing SSH command configuration
2026-10-24T05:20:12.9103470Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-24T05:20:12.9124302Z [command]/usr/local/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-10-24T05:20:12.9233610Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-24T05:20:12.9254172Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-24T05:20:12.9287418Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-24T05:20:12.9301332Z ##[group]Run '/job_completed.sh'
2026-10-24T05:20:12.9307104Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-24T05:20:12.9307277Z env:
2026-10-24T05:20:12.9307391Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 135
2026-10-24T05:20:12.9307539Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 395
2026-10-24T05:20:12.9307680Z BLACKSMITH_CHECK_RUN_ID: 120788669600
2026-10-24T05:20:12.9307820Z BLACKSMITH_JOB_DISPLAY_NAME: Lint
2026-10-24T05:20:12.9307962Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-24T05:20:12.9308097Z ##[endgroup]
2026-10-24T05:20:12.9375584Z Docker container cache not activated, skipping hash computation.
2026-10-24T05:20:12.9621235Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-24T05:20:12.9662097Z Cleaning up orphan processes