GitHub check
256 KB of 597 KB loaded Download the full log (597 KB)
341 KB of earlier output not loaded
is scheduler- and load-dependent. Await the `Deferred`, `Queue.take`, `Stream` element, `drain()`, or `expect.poll` that marks the milestone.
2026-10-23T11:12:18.2744581Z โญโ[apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts:6197:9]
2026-10-23T11:12:18.2744668Z 6196 โ .pipe(Effect.forkScoped);
2026-10-23T11:12:18.2744850Z 6197 โ โญโโถ while (promptGates.length < 2) {
2026-10-23T11:12:18.2744961Z 6198 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.2745096Z 6199 โ โฐโโถ }
2026-10-23T11:12:18.2745257Z 6200 โ if (sessionUpdateHandler === undefined || capturedMutation.current === null) {
2026-10-23T11:12:18.2745313Z โฐโโโโ
2026-10-23T11:12:18.2745315Z
2026-10-23T11:12:18.2745572Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2745790Z โญโ[apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts:10578:7]
2026-10-23T11:12:18.2745877Z 10577 โ
2026-10-23T11:12:18.2745953Z 10578 โ const layer: Layer.Layer<
2026-10-23T11:12:18.2746028Z ยท โโโฌโโ
2026-10-23T11:12:18.2746158Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.2746250Z 10579 โ ProviderAdapter.ProviderAdapterV2,
2026-10-23T11:12:18.2746305Z โฐโโโโ
2026-10-23T11:12:18.2746410Z help: Consider removing this declaration.
2026-10-23T11:12:18.2746412Z
2026-10-23T11:12:18.2746567Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2746722Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-23T11:12:18.2746776Z 86 โ
2026-10-23T11:12:18.2746870Z 87 โ const cardCoverage = props.cardCoverage;
2026-10-23T11:12:18.2746958Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2747096Z ยท โฐโโ `cardCoverage` originates here
2026-10-23T11:12:18.2747177Z 88 โ const barHeightRef = useRef(0);
2026-10-23T11:12:18.2747258Z 89 โ const cardHeightRef = useRef(0);
2026-10-23T11:12:18.2747344Z 90 โ const cardHeight = useSharedValue(0);
2026-10-23T11:12:18.2747435Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-23T11:12:18.2747504Z 92 โ if (!cardCoverage) {
2026-10-23T11:12:18.2747566Z 93 โ return;
2026-10-23T11:12:18.2747635Z 94 โ }
2026-10-23T11:12:18.2747821Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-23T11:12:18.2747912Z 96 โ if (coverage === cardCoverage.value) {
2026-10-23T11:12:18.2747974Z 97 โ return;
2026-10-23T11:12:18.2748031Z 98 โ }
2026-10-23T11:12:18.2748114Z 99 โ if (cardCoverage.value === 0) {
2026-10-23T11:12:18.2748200Z 100 โ cardCoverage.value = coverage;
2026-10-23T11:12:18.2748281Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2748424Z ยท โฐโโ `cardCoverage` cannot be modified
2026-10-23T11:12:18.2748482Z 101 โ return;
2026-10-23T11:12:18.2748538Z โฐโโโโ
2026-10-23T11:12:18.2748834Z 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-23T11:12:18.2749140Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2749142Z
2026-10-23T11:12:18.2749345Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2749538Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:118:7]
2026-10-23T11:12:18.2749621Z 89 โ const cardHeightRef = useRef(0);
2026-10-23T11:12:18.2749706Z 90 โ const cardHeight = useSharedValue(0);
2026-10-23T11:12:18.2749781Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2749918Z ยท โฐโโ `cardHeight` originates here
2026-10-23T11:12:18.2750013Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-23T11:12:18.2750082Z 92 โ if (!cardCoverage) {
2026-10-23T11:12:18.2750141Z 93 โ return;
2026-10-23T11:12:18.2750196Z 94 โ }
2026-10-23T11:12:18.2750344Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-23T11:12:18.2750432Z 96 โ if (coverage === cardCoverage.value) {
2026-10-23T11:12:18.2750494Z 97 โ return;
2026-10-23T11:12:18.2750553Z 98 โ }
2026-10-23T11:12:18.2750635Z 99 โ if (cardCoverage.value === 0) {
2026-10-23T11:12:18.2750719Z 100 โ cardCoverage.value = coverage;
2026-10-23T11:12:18.2750776Z 101 โ return;
2026-10-23T11:12:18.2750831Z 102 โ }
2026-10-23T11:12:18.2750932Z 103 โ cardCoverage.value = withTiming(coverage, {
2026-10-23T11:12:18.2751030Z 104 โ duration: USER_INPUT_TOGGLE_DURATION_MS,
2026-10-23T11:12:18.2751113Z 105 โ easing: Easing.out(Easing.cubic),
2026-10-23T11:12:18.2751171Z 106 โ });
2026-10-23T11:12:18.2751238Z 107 โ }, [cardCoverage]);
2026-10-23T11:12:18.2751320Z 108 โ const handleBarLayout = useCallback(
2026-10-23T11:12:18.2751401Z 109 โ (event: LayoutChangeEvent) => {
2026-10-23T11:12:18.2751529Z 110 โ barHeightRef.current = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2751603Z 111 โ notifyCoverage();
2026-10-23T11:12:18.2751659Z 112 โ },
2026-10-23T11:12:18.2751727Z 113 โ [notifyCoverage],
2026-10-23T11:12:18.2751783Z 114 โ );
2026-10-23T11:12:18.2751869Z 115 โ const handleCardLayout = useCallback(
2026-10-23T11:12:18.2751947Z 116 โ (event: LayoutChangeEvent) => {
2026-10-23T11:12:18.2752075Z 117 โ cardHeightRef.current = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2752190Z 118 โ cardHeight.value = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2752269Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2752404Z ยท โฐโโ `cardHeight` cannot be modified
2026-10-23T11:12:18.2752473Z 119 โ notifyCoverage();
2026-10-23T11:12:18.2752527Z โฐโโโโ
2026-10-23T11:12:18.2752796Z 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-23T11:12:18.2753100Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2753104Z
2026-10-23T11:12:18.2753300Z โ react(immutability): Cannot modify local variables after render completes
2026-10-23T11:12:18.2753455Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-23T11:12:18.2753547Z 90 โ const cardHeight = useSharedValue(0);
2026-10-23T11:12:18.2753645Z 91 โ const notifyCoverage = useCallback(() => {
2026-10-23T11:12:18.2753750Z ยท โโโโฌโโโ
2026-10-23T11:12:18.2754040Z ยท โฐโโ This function may (indirectly) reassign or modify `cardCoverage` after render
2026-10-23T11:12:18.2754145Z 92 โ if (!cardCoverage) {
2026-10-23T11:12:18.2754206Z 93 โ return;
2026-10-23T11:12:18.2754258Z 94 โ }
2026-10-23T11:12:18.2754407Z 95 โ const coverage = Math.max(0, cardHeightRef.current - barHeightRef.current);
2026-10-23T11:12:18.2754495Z 96 โ if (coverage === cardCoverage.value) {
2026-10-23T11:12:18.2754554Z 97 โ return;
2026-10-23T11:12:18.2754606Z 98 โ }
2026-10-23T11:12:18.2754687Z 99 โ if (cardCoverage.value === 0) {
2026-10-23T11:12:18.2754769Z 100 โ cardCoverage.value = coverage;
2026-10-23T11:12:18.2754847Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2754986Z ยท โฐโโ This modifies `cardCoverage`
2026-10-23T11:12:18.2755048Z 101 โ return;
2026-10-23T11:12:18.2755101Z โฐโโโโ
2026-10-23T11:12:18.2755444Z 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-23T11:12:18.2755804Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2755806Z
2026-10-23T11:12:18.2756005Z โ react(immutability): Cannot modify local variables after render completes
2026-10-23T11:12:18.2756160Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:100:7]
2026-10-23T11:12:18.2756242Z 99 โ if (cardCoverage.value === 0) {
2026-10-23T11:12:18.2756323Z 100 โ cardCoverage.value = coverage;
2026-10-23T11:12:18.2756401Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2756541Z ยท โฐโโ This modifies `cardCoverage`
2026-10-23T11:12:18.2756604Z 101 โ return;
2026-10-23T11:12:18.2756657Z 102 โ }
2026-10-23T11:12:18.2756759Z 103 โ cardCoverage.value = withTiming(coverage, {
2026-10-23T11:12:18.2756858Z 104 โ duration: USER_INPUT_TOGGLE_DURATION_MS,
2026-10-23T11:12:18.2756945Z 105 โ easing: Easing.out(Easing.cubic),
2026-10-23T11:12:18.2756999Z 106 โ });
2026-10-23T11:12:18.2757068Z 107 โ }, [cardCoverage]);
2026-10-23T11:12:18.2757153Z 108 โ const handleBarLayout = useCallback(
2026-10-23T11:12:18.2757235Z 109 โ (event: LayoutChangeEvent) => {
2026-10-23T11:12:18.2757340Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2757564Z ยท โฐโโ This function may (indirectly) reassign or modify `cardCoverage` after render
2026-10-23T11:12:18.2757746Z 110 โ barHeightRef.current = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2757808Z โฐโโโโ
2026-10-23T11:12:18.2758143Z 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-23T11:12:18.2758449Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2758452Z
2026-10-23T11:12:18.2758649Z โ react(immutability): Cannot modify local variables after render completes
2026-10-23T11:12:18.2758806Z โญโ[apps/mobile/src/features/threads/PendingUserInputCard.tsx:118:7]
2026-10-23T11:12:18.2758890Z 115 โ const handleCardLayout = useCallback(
2026-10-23T11:12:18.2759041Z 116 โ (event: LayoutChangeEvent) => {
2026-10-23T11:12:18.2759188Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2759404Z ยท โฐโโ This function may (indirectly) reassign or modify `cardHeight` after render
2026-10-23T11:12:18.2759530Z 117 โ cardHeightRef.current = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2759644Z 118 โ cardHeight.value = event.nativeEvent.layout.height;
2026-10-23T11:12:18.2759722Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2759854Z ยท โฐโโ This modifies `cardHeight`
2026-10-23T11:12:18.2759924Z 119 โ notifyCoverage();
2026-10-23T11:12:18.2759974Z โฐโโโโ
2026-10-23T11:12:18.2760309Z 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-23T11:12:18.2760615Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2760617Z
2026-10-23T11:12:18.2760819Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-23T11:12:18.2760954Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:229:6]
2026-10-23T11:12:18.2761118Z 225 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-23T11:12:18.2761208Z 226 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2761302Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2761761Z ยท โฐโโ 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-23T11:12:18.2761840Z 227 โ mostRecentEventCount,
2026-10-23T11:12:18.2761898Z 228 โ );
2026-10-23T11:12:18.2762022Z 229 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-23T11:12:18.2762156Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2762356Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2762440Z 230 โ const assumedValue = props.value;
2026-10-23T11:12:18.2762494Z โฐโโโโ
2026-10-23T11:12:18.2762663Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-23T11:12:18.2762975Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2762981Z
2026-10-23T11:12:18.2763195Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T11:12:18.2763332Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:237:7]
2026-10-23T11:12:18.2763476Z 236 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-23T11:12:18.2763563Z 237 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2763656Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2764104Z ยท โฐโโ 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-23T11:12:18.2764228Z 238 โ controlledEventCount,
2026-10-23T11:12:18.2764323Z 239 โ assumedValue,
2026-10-23T11:12:18.2764378Z 240 โ );
2026-10-23T11:12:18.2764537Z 241 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-23T11:12:18.2764678Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2764886Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-23T11:12:18.2764974Z 242 โ const acceptNativeEvent = useCallback(
2026-10-23T11:12:18.2765028Z โฐโโโโ
2026-10-23T11:12:18.2765450Z 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-23T11:12:18.2765765Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2765768Z
2026-10-23T11:12:18.2765909Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2766045Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:162:29]
2026-10-23T11:12:18.2766171Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2766285Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2766402Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2766574Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2766637Z 163 โ });
2026-10-23T11:12:18.2766695Z โฐโโโโ
2026-10-23T11:12:18.2767154Z 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-23T11:12:18.2767439Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2767442Z
2026-10-23T11:12:18.2767587Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2767744Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:162:29]
2026-10-23T11:12:18.2767867Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2767981Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2768102Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2768308Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2768366Z 163 โ });
2026-10-23T11:12:18.2768415Z โฐโโโโ
2026-10-23T11:12:18.2768870Z 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-23T11:12:18.2769158Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2769160Z
2026-10-23T11:12:18.2769360Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2769529Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:23]
2026-10-23T11:12:18.2769583Z 163 โ });
2026-10-23T11:12:18.2769678Z 164 โ confirmedTokensRef.current = tokens;
2026-10-23T11:12:18.2769805Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-23T11:12:18.2769994Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2770110Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2770185Z 165 โ return JSON.stringify(
2026-10-23T11:12:18.2770238Z โฐโโโโ
2026-10-23T11:12:18.2770710Z 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-23T11:12:18.2771000Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2771002Z
2026-10-23T11:12:18.2771142Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2771277Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:206:5]
2026-10-23T11:12:18.2771348Z 205 โ mostRecentEventCount,
2026-10-23T11:12:18.2771437Z 206 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2771539Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2771726Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2771787Z 207 โ );
2026-10-23T11:12:18.2771843Z โฐโโโโ
2026-10-23T11:12:18.2772298Z 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-23T11:12:18.2772585Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2772588Z
2026-10-23T11:12:18.2772732Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2772868Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:212:5]
2026-10-23T11:12:18.2772941Z 211 โ mostRecentEventCount,
2026-10-23T11:12:18.2773075Z 212 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2773214Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2773400Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2773458Z 213 โ );
2026-10-23T11:12:18.2773508Z โฐโโโโ
2026-10-23T11:12:18.2773968Z 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-23T11:12:18.2774256Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2774258Z
2026-10-23T11:12:18.2774451Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-23T11:12:18.2774586Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:197:6]
2026-10-23T11:12:18.2774710Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2774823Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2774933Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2775390Z ยท โฐโโ 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-23T11:12:18.2775446Z 163 โ });
2026-10-23T11:12:18.2775539Z 164 โ confirmedTokensRef.current = tokens;
2026-10-23T11:12:18.2775612Z 165 โ return JSON.stringify(
2026-10-23T11:12:18.2775781Z 166 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-23T11:12:18.2775852Z 167 โ const record =
2026-10-23T11:12:18.2775933Z 168 โ token.type === "context"
2026-10-23T11:12:18.2776098Z 169 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-23T11:12:18.2776167Z 170 โ : undefined;
2026-10-23T11:12:18.2776275Z 171 โ const presentation = contextChipPresentation(
2026-10-23T11:12:18.2776387Z 172 โ token.type === "context" ? token.kind : token.type,
2026-10-23T11:12:18.2776451Z 173 โ record,
2026-10-23T11:12:18.2776514Z 174 โ );
2026-10-23T11:12:18.2776598Z 175 โ const icon = contextChipIcon(
2026-10-23T11:12:18.2776667Z 176 โ presentation,
2026-10-23T11:12:18.2776815Z 177 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-23T11:12:18.2776878Z 178 โ );
2026-10-23T11:12:18.2776939Z 179 โ return {
2026-10-23T11:12:18.2777010Z 180 โ type: token.type,
2026-10-23T11:12:18.2777087Z 181 โ source: token.source,
2026-10-23T11:12:18.2777156Z 182 โ start: token.start,
2026-10-23T11:12:18.2777224Z 183 โ end: token.end,
2026-10-23T11:12:18.2777309Z 184 โ accent: presentation.accent,
2026-10-23T11:12:18.2777374Z 185 โ label:
2026-10-23T11:12:18.2777450Z 186 โ token.type === "skill"
2026-10-23T11:12:18.2777559Z 187 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-23T11:12:18.2777656Z 188 โ : token.type === "context"
2026-10-23T11:12:18.2777967Z 189 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-23T11:12:18.2778082Z 190 โ : basename(token.value),
2026-10-23T11:12:18.2778228Z 191 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-23T11:12:18.2778322Z 192 โ iconUri: contextChipIconUri(icon),
2026-10-23T11:12:18.2778413Z 193 โ tintsIcon: icon.kind === "chip",
2026-10-23T11:12:18.2778469Z 194 โ };
2026-10-23T11:12:18.2778528Z 195 โ }),
2026-10-23T11:12:18.2778586Z 196 โ );
2026-10-23T11:12:18.2778686Z 197 โ }, [props.value, props.context, skillLabels]);
2026-10-23T11:12:18.2778804Z ยท โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2779004Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2779152Z 198 โ // Every render resolves against the snapshot history, so a render whose
2026-10-23T11:12:18.2779211Z โฐโโโโ
2026-10-23T11:12:18.2779413Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-23T11:12:18.2779724Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2779726Z
2026-10-23T11:12:18.2779913Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-23T11:12:18.2780049Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:259:5]
2026-10-23T11:12:18.2780180Z 251 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-23T11:12:18.2780280Z 252 โ nativeEventSnapshotsRef.current.push({
2026-10-23T11:12:18.2780373Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2780828Z ยท โฐโโ 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-23T11:12:18.2780925Z 253 โ eventCount: acknowledgedEventCount,
2026-10-23T11:12:18.2780985Z 254 โ value,
2026-10-23T11:12:18.2781066Z 255 โ selection: nextSelection,
2026-10-23T11:12:18.2781126Z 256 โ });
2026-10-23T11:12:18.2781211Z 257 โ return acknowledgedEventCount;
2026-10-23T11:12:18.2781272Z 258 โ },
2026-10-23T11:12:18.2781328Z 259 โ [],
2026-10-23T11:12:18.2781398Z ยท โโฌ
2026-10-23T11:12:18.2781580Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2781639Z 260 โ );
2026-10-23T11:12:18.2781695Z โฐโโโโ
2026-10-23T11:12:18.2781895Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-23T11:12:18.2782202Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2782205Z
2026-10-23T11:12:18.2782457Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2782617Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:261:5]
2026-10-23T11:12:18.2782681Z 259 โ .join("|");
2026-10-23T11:12:18.2782745Z 260 โ useEffect(() => {
2026-10-23T11:12:18.2782815Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2782997Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2783095Z 261 โ stop();
2026-10-23T11:12:18.2783166Z ยท โโโฌโ
2026-10-23T11:12:18.2783328Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2783396Z 262 โ }, [orderVersion]);
2026-10-23T11:12:18.2783449Z โฐโโโโ
2026-10-23T11:12:18.2784049Z 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-23T11:12:18.2784373Z 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-23T11:12:18.2784378Z
2026-10-23T11:12:18.2784588Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T11:12:18.2784747Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:261:5]
2026-10-23T11:12:18.2784814Z 260 โ useEffect(() => {
2026-10-23T11:12:18.2784873Z 261 โ stop();
2026-10-23T11:12:18.2784938Z ยท โโโฌโ
2026-10-23T11:12:18.2785065Z ยท โฐโโ Missing dependency `stop`
2026-10-23T11:12:18.2785131Z 262 โ }, [orderVersion]);
2026-10-23T11:12:18.2785211Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2785355Z ยท โฐโโ Unnecessary dependency `orderVersion`
2026-10-23T11:12:18.2785416Z 263 โ useEffect(
2026-10-23T11:12:18.2785467Z โฐโโโโ
2026-10-23T11:12:18.2785886Z 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-23T11:12:18.2786192Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2786197Z
2026-10-23T11:12:18.2786340Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2786500Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:96:9]
2026-10-23T11:12:18.2786580Z 95 โ const latest = useRef(props);
2026-10-23T11:12:18.2786650Z 96 โ latest.current = props;
2026-10-23T11:12:18.2786758Z ยท โโโโฌโโโโโโโฌโโโ
2026-10-23T11:12:18.2786943Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2787060Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2787129Z 97 โ const gesture = useMemo(
2026-10-23T11:12:18.2787179Z โฐโโโโ
2026-10-23T11:12:18.2787650Z 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-23T11:12:18.2787964Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2787967Z
2026-10-23T11:12:18.2788164Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2788358Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:104:18]
2026-10-23T11:12:18.2788424Z 103 โ .runOnJS(true)
2026-10-23T11:12:18.2788523Z 104 โ .onStart(() => latest.current.onStart())
2026-10-23T11:12:18.2788641Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2788837Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2788971Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2789024Z โฐโโโโ
2026-10-23T11:12:18.2789483Z 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-23T11:12:18.2789773Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2789775Z
2026-10-23T11:12:18.2789917Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2790076Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:105:19]
2026-10-23T11:12:18.2790172Z 104 โ .onStart(() => latest.current.onStart())
2026-10-23T11:12:18.2790306Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2790448Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2790663Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2790795Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2790848Z โฐโโโโ
2026-10-23T11:12:18.2791303Z 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-23T11:12:18.2791586Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2791588Z
2026-10-23T11:12:18.2791729Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2791886Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:106:16]
2026-10-23T11:12:18.2792068Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2792294Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2792439Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2792644Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2792768Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-23T11:12:18.2792821Z โฐโโโโ
2026-10-23T11:12:18.2793273Z 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-23T11:12:18.2793567Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2793573Z
2026-10-23T11:12:18.2793716Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2793872Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:107:21]
2026-10-23T11:12:18.2793994Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2794120Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-23T11:12:18.2794259Z ยท โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2794466Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2794542Z 108 โ [props.disabled],
2026-10-23T11:12:18.2794595Z โฐโโโโ
2026-10-23T11:12:18.2795052Z 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-23T11:12:18.2795336Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2795338Z
2026-10-23T11:12:18.2795488Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2795689Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:249:9]
2026-10-23T11:12:18.2795804Z 248 โ const latest = useRef({ rows, planners, moveThread });
2026-10-23T11:12:18.2795915Z 249 โ latest.current = { rows, planners, moveThread };
2026-10-23T11:12:18.2796024Z ยท โโโโฌโโโโโโโฌโโโ
2026-10-23T11:12:18.2796205Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2796318Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2796373Z 250 โ
2026-10-23T11:12:18.2796426Z โฐโโโโ
2026-10-23T11:12:18.2796885Z 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-23T11:12:18.2797167Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2797231Z
2026-10-23T11:12:18.2797411Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2797569Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:247:22]
2026-10-23T11:12:18.2797702Z 246 โ const [preview, setPreview] = useState<Drag | null>(null);
2026-10-23T11:12:18.2797816Z 247 โ const translateY = useRef(new Animated.Value(0)).current;
2026-10-23T11:12:18.2797941Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2798109Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2798219Z 248 โ const latest = useRef({ rows, planners, moveThread });
2026-10-23T11:12:18.2798271Z โฐโโโโ
2026-10-23T11:12:18.2798729Z 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-23T11:12:18.2799020Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2799022Z
2026-10-23T11:12:18.2799188Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.2799345Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:324:16]
2026-10-23T11:12:18.2799407Z 323 โ update(0);
2026-10-23T11:12:18.2799490Z 324 โ let last = performance.now();
2026-10-23T11:12:18.2799587Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2799733Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.2799802Z 325 โ const tick = () => {
2026-10-23T11:12:18.2799855Z โฐโโโโ
2026-10-23T11:12:18.2800152Z help: `performance.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.2800441Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.2800444Z
2026-10-23T11:12:18.2800629Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-23T11:12:18.2800785Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:99:15]
2026-10-23T11:12:18.2800846Z 98 โ () =>
2026-10-23T11:12:18.2800913Z 99 โ Gesture.Pan()
2026-10-23T11:12:18.2800993Z ยท โโฌโ
2026-10-23T11:12:18.2801124Z ยท โฐโโ `Pan` may be a component
2026-10-23T11:12:18.2801203Z 100 โ .enabled(!props.disabled)
2026-10-23T11:12:18.2801255Z โฐโโโโ
2026-10-23T11:12:18.2801528Z 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-23T11:12:18.2801964Z 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-23T11:12:18.2801967Z
2026-10-23T11:12:18.2802151Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-23T11:12:18.2802360Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:108:5]
2026-10-23T11:12:18.2802468Z 103 โ .runOnJS(true)
2026-10-23T11:12:18.2802565Z 104 โ .onStart(() => latest.current.onStart())
2026-10-23T11:12:18.2802659Z ยท โโโโฌโโ
2026-10-23T11:12:18.2803086Z ยท โฐโโ Missing dependency `latest`. 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-23T11:12:18.2803217Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2803341Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-23T11:12:18.2803460Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-23T11:12:18.2803530Z 108 โ [props.disabled],
2026-10-23T11:12:18.2803618Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2803806Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2803860Z 109 โ );
2026-10-23T11:12:18.2803912Z โฐโโโโ
2026-10-23T11:12:18.2804114Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-23T11:12:18.2804420Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2804423Z
2026-10-23T11:12:18.2804751Z โ eslint(no-unused-vars): Variable 'layerCodexAppServerClientFactoryCommand' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2804921Z โญโ[apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts:1444:7]
2026-10-23T11:12:18.2804979Z 1443 โ
2026-10-23T11:12:18.2805095Z 1444 โ const layerCodexAppServerClientFactoryCommand = (
2026-10-23T11:12:18.2805212Z ยท โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2805415Z ยท โฐโโ 'layerCodexAppServerClientFactoryCommand' is declared here
2026-10-23T11:12:18.2805536Z 1445 โ options: CodexClient.CodexAppServerClientOptions & {
2026-10-23T11:12:18.2805589Z โฐโโโโ
2026-10-23T11:12:18.2805693Z help: Consider removing this declaration.
2026-10-23T11:12:18.2805696Z
2026-10-23T11:12:18.2805947Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2806114Z โญโ[apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts:1680:7]
2026-10-23T11:12:18.2806171Z 1679 โ
2026-10-23T11:12:18.2806243Z 1680 โ const layer: Layer.Layer<
2026-10-23T11:12:18.2806313Z ยท โโโฌโโ
2026-10-23T11:12:18.2806445Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.2806540Z 1681 โ ProviderAdapter.ProviderAdapterV2,
2026-10-23T11:12:18.2806593Z โฐโโโโ
2026-10-23T11:12:18.2806693Z help: Consider removing this declaration.
2026-10-23T11:12:18.2806696Z
2026-10-23T11:12:18.2806987Z โ eslint(no-unused-vars): Variable 'layerFromProviderAdapter' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2807146Z โญโ[apps/server/src/orchestration-v2/ProviderAdapterRegistry.ts:346:7]
2026-10-23T11:12:18.2807201Z 345 โ
2026-10-23T11:12:18.2807350Z 346 โ const layerFromProviderAdapter: Layer.Layer<
2026-10-23T11:12:18.2807479Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2807660Z ยท โฐโโ 'layerFromProviderAdapter' is declared here
2026-10-23T11:12:18.2807738Z 347 โ ProviderAdapterRegistryV2,
2026-10-23T11:12:18.2807800Z โฐโโโโ
2026-10-23T11:12:18.2807902Z help: Consider removing this declaration.
2026-10-23T11:12:18.2807904Z
2026-10-23T11:12:18.2808159Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2808311Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:512:5]
2026-10-23T11:12:18.2808369Z 510 โ }, []);
2026-10-23T11:12:18.2808436Z 511 โ useEffect(() => {
2026-10-23T11:12:18.2808509Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2808647Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2808734Z 512 โ setKeyboardStateSuspect(false);
2026-10-23T11:12:18.2808826Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2808995Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2809096Z 513 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-23T11:12:18.2809146Z โฐโโโโ
2026-10-23T11:12:18.2809747Z 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-23T11:12:18.2810071Z 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-23T11:12:18.2810076Z
2026-10-23T11:12:18.2810329Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2810479Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:872:7]
2026-10-23T11:12:18.2810631Z 869 โ const [lastKnownKeyboardHeight, setLastKnownKeyboardHeight] = useState(0);
2026-10-23T11:12:18.2810697Z 870 โ useEffect(() => {
2026-10-23T11:12:18.2810770Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2810898Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2811053Z 871 โ if (liveKeyboardHeight > 0 && liveKeyboardHeight !== lastKnownKeyboardHeight) {
2026-10-23T11:12:18.2811172Z 872 โ setLastKnownKeyboardHeight(liveKeyboardHeight);
2026-10-23T11:12:18.2811272Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2811447Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2811501Z 873 โ }
2026-10-23T11:12:18.2811553Z โฐโโโโ
2026-10-23T11:12:18.2812142Z 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-23T11:12:18.2812460Z 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-23T11:12:18.2812516Z
2026-10-23T11:12:18.2812799Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2812951Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1119:5]
2026-10-23T11:12:18.2813006Z 1117 โ
2026-10-23T11:12:18.2813073Z 1118 โ useEffect(() => {
2026-10-23T11:12:18.2813146Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2813273Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2813352Z 1119 โ setAnchorMessageId(null);
2026-10-23T11:12:18.2813439Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2813609Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2813690Z 1120 โ setSubmittedMessageId(null);
2026-10-23T11:12:18.2813752Z โฐโโโโ
2026-10-23T11:12:18.2814339Z 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-23T11:12:18.2814655Z 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-23T11:12:18.2814658Z
2026-10-23T11:12:18.2814854Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2815001Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:513:7]
2026-10-23T11:12:18.2815088Z 512 โ setKeyboardStateSuspect(false);
2026-10-23T11:12:18.2815189Z 513 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-23T11:12:18.2815333Z ยท โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2815537Z ยท โ โฐโโ Unnecessary dependency `liveKeyboardHeight`
2026-10-23T11:12:18.2815695Z ยท โฐโโ Unnecessary dependency `isKeyboardVisible`
2026-10-23T11:12:18.2815822Z 514 โ const handleOwnedInputFocusChange = (focused: boolean) => {
2026-10-23T11:12:18.2815875Z โฐโโโโ
2026-10-23T11:12:18.2816162Z 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-23T11:12:18.2816522Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2816558Z
2026-10-23T11:12:18.2816757Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2816912Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1067:7]
2026-10-23T11:12:18.2817000Z 1066 โ userInputInsetProgress.set(1);
2026-10-23T11:12:18.2817159Z 1067 โ }, [activeUserInputRequestId, userInputCardProgress, userInputInsetProgress]);
2026-10-23T11:12:18.2817255Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2817435Z ยท โฐโโ Unnecessary dependency `activeUserInputRequestId`
2026-10-23T11:12:18.2817543Z 1068 โ const showContent = props.showContent ?? true;
2026-10-23T11:12:18.2817594Z โฐโโโโ
2026-10-23T11:12:18.2817926Z 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-23T11:12:18.2818236Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2818238Z
2026-10-23T11:12:18.2818436Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2818592Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1125:15]
2026-10-23T11:12:18.2818660Z 1124 โ freeze.set(false);
2026-10-23T11:12:18.2818745Z 1125 โ }, [freeze, selectedThreadKey]);
2026-10-23T11:12:18.2818840Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2819007Z ยท โฐโโ Unnecessary dependency `selectedThreadKey`
2026-10-23T11:12:18.2819063Z 1126 โ
2026-10-23T11:12:18.2819119Z โฐโโโโ
2026-10-23T11:12:18.2819406Z 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-23T11:12:18.2819713Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2819715Z
2026-10-23T11:12:18.2819869Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2820022Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:955:5]
2026-10-23T11:12:18.2820133Z 950 โ const composerPopoverHeight = useSharedValue(0);
2026-10-23T11:12:18.2820243Z 951 โ const floatingControlCoverage = useSharedValue(
2026-10-23T11:12:18.2820339Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2820501Z ยท โฐโโ `floatingControlCoverage` originates here
2026-10-23T11:12:18.2820629Z 952 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-23T11:12:18.2820685Z 953 โ );
2026-10-23T11:12:18.2820749Z 954 โ useEffect(() => {
2026-10-23T11:12:18.2820853Z 955 โ floatingControlCoverage.value = withTiming(
2026-10-23T11:12:18.2820947Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2821107Z ยท โฐโโ `floatingControlCoverage` cannot be modified
2026-10-23T11:12:18.2821232Z 956 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-23T11:12:18.2821286Z โฐโโโโ
2026-10-23T11:12:18.2821603Z 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-23T11:12:18.2821944Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2821946Z
2026-10-23T11:12:18.2822101Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2822250Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:973:7]
2026-10-23T11:12:18.2822435Z 963 โ const userInputCoverageApplies = Platform.OS === "ios" && activeUserInputRequestId !== null;
2026-10-23T11:12:18.2822560Z 964 โ const combinedContentInsetEndAdjustment = useSharedValue(
2026-10-23T11:12:18.2822670Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2822855Z ยท โฐโโ `combinedContentInsetEndAdjustment` originates here
2026-10-23T11:12:18.2822988Z 965 โ Math.max(0, estimatedOverlayHeight - nativeInsetOvercount),
2026-10-23T11:12:18.2823044Z 966 โ );
2026-10-23T11:12:18.2823118Z 967 โ useAnimatedReaction(
2026-10-23T11:12:18.2825670Z 968 โ () =>
2026-10-23T11:12:18.2825775Z 969 โ contentInsetEndAdjustment.value +
2026-10-23T11:12:18.2825867Z 970 โ floatingControlCoverage.value +
2026-10-23T11:12:18.2826062Z 971 โ (userInputCoverageApplies ? userInputInsetProgress.value * userInputCardCoverage.value : 0),
2026-10-23T11:12:18.2826124Z 972 โ (value) => {
2026-10-23T11:12:18.2826235Z 973 โ combinedContentInsetEndAdjustment.value = value;
2026-10-23T11:12:18.2826346Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2826547Z ยท โฐโโ `combinedContentInsetEndAdjustment` cannot be modified
2026-10-23T11:12:18.2826608Z 974 โ },
2026-10-23T11:12:18.2826657Z โฐโโโโ
2026-10-23T11:12:18.2826921Z 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-23T11:12:18.2827223Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2827226Z
2026-10-23T11:12:18.2827480Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2827673Z โญโ[apps/server/src/orchestration-v2/ThreadPullRequestService.ts:408:7]
2026-10-23T11:12:18.2827726Z 407 โ
2026-10-23T11:12:18.2827863Z 408 โ const layer = Layer.effect(ThreadPullRequestServiceV2, make);
2026-10-23T11:12:18.2827937Z ยท โโโฌโโ
2026-10-23T11:12:18.2828062Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.2828112Z โฐโโโโ
2026-10-23T11:12:18.2828216Z help: Consider removing this declaration.
2026-10-23T11:12:18.2828218Z
2026-10-23T11:12:18.2828473Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2828624Z โญโ[apps/mobile/src/features/threads/use-worktree-setup.ts:30:40]
2026-10-23T11:12:18.2828782Z 28 โ const snapshot = resolveWorktreeSetupSnapshot(input.threadId, query.data, live);
2026-10-23T11:12:18.2828851Z 29 โ useEffect(() => {
2026-10-23T11:12:18.2828923Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2829117Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2829270Z 30 โ if (snapshot && snapshot !== live) setHeld({ key, snapshot });
2026-10-23T11:12:18.2829377Z ยท โโโโฌโโโ
2026-10-23T11:12:18.2829568Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2829640Z 31 โ }, [key, live, snapshot]);
2026-10-23T11:12:18.2829690Z โฐโโโโ
2026-10-23T11:12:18.2830282Z 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-23T11:12:18.2830611Z 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-23T11:12:18.2830616Z
2026-10-23T11:12:18.2830895Z โ eslint(no-unused-vars): Variable 'layerUnavailable' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2831041Z โญโ[apps/server/src/orchestration-v2/Orchestrator.ts:12322:7]
2026-10-23T11:12:18.2831095Z 12321 โ
2026-10-23T11:12:18.2831237Z 12322 โ const layerUnavailable: Layer.Layer<OrchestratorV2> = Layer.succeed(
2026-10-23T11:12:18.2831324Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2831475Z ยท โฐโโ 'layerUnavailable' is declared here
2026-10-23T11:12:18.2831542Z 12323 โ OrchestratorV2,
2026-10-23T11:12:18.2831598Z โฐโโโโ
2026-10-23T11:12:18.2831708Z help: Consider removing this declaration.
2026-10-23T11:12:18.2831714Z
2026-10-23T11:12:18.2831906Z โ eslint(no-unused-vars): Identifier 'Image' is imported but never used.
2026-10-23T11:12:18.2832045Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:17:10]
2026-10-23T11:12:18.2832180Z 16 โ import type { NativeSyntheticEvent, ViewProps } from "react-native";
2026-10-23T11:12:18.2832297Z 17 โ import { Image, Platform, StyleSheet } from "react-native";
2026-10-23T11:12:18.2832371Z ยท โโโฌโโ
2026-10-23T11:12:18.2832496Z ยท โฐโโ 'Image' is imported here
2026-10-23T11:12:18.2832551Z 18 โ
2026-10-23T11:12:18.2832604Z โฐโโโโ
2026-10-23T11:12:18.2832703Z help: Consider removing this import.
2026-10-23T11:12:18.2832705Z
2026-10-23T11:12:18.2832912Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-23T11:12:18.2833058Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:227:6]
2026-10-23T11:12:18.2833222Z 223 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-23T11:12:18.2833315Z 224 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2833409Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2833867Z ยท โฐโโ 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-23T11:12:18.2833943Z 225 โ mostRecentEventCount,
2026-10-23T11:12:18.2834002Z 226 โ );
2026-10-23T11:12:18.2834180Z 227 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-23T11:12:18.2834347Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2834550Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2834636Z 228 โ const assumedValue = props.value;
2026-10-23T11:12:18.2834690Z โฐโโโโ
2026-10-23T11:12:18.2834855Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-23T11:12:18.2835167Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2835169Z
2026-10-23T11:12:18.2835382Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T11:12:18.2835541Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:235:7]
2026-10-23T11:12:18.2835744Z 234 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-23T11:12:18.2835831Z 235 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2835923Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2836372Z ยท โฐโโ 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-23T11:12:18.2836445Z 236 โ controlledEventCount,
2026-10-23T11:12:18.2836509Z 237 โ assumedValue,
2026-10-23T11:12:18.2836565Z 238 โ );
2026-10-23T11:12:18.2836722Z 239 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-23T11:12:18.2836865Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2837072Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-23T11:12:18.2837165Z 240 โ const acceptNativeEvent = useCallback(
2026-10-23T11:12:18.2837219Z โฐโโโโ
2026-10-23T11:12:18.2837654Z 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-23T11:12:18.2837970Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2837975Z
2026-10-23T11:12:18.2838188Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2838376Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:160:29]
2026-10-23T11:12:18.2838501Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2838614Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2838731Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2838900Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2838959Z 161 โ });
2026-10-23T11:12:18.2839013Z โฐโโโโ
2026-10-23T11:12:18.2839479Z 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-23T11:12:18.2839772Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2839775Z
2026-10-23T11:12:18.2839918Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2840064Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:160:29]
2026-10-23T11:12:18.2840186Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2840295Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2840414Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2840627Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2840689Z 161 โ });
2026-10-23T11:12:18.2840740Z โฐโโโโ
2026-10-23T11:12:18.2841202Z 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-23T11:12:18.2841490Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2841492Z
2026-10-23T11:12:18.2841636Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2841778Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:23]
2026-10-23T11:12:18.2841834Z 161 โ });
2026-10-23T11:12:18.2841930Z 162 โ confirmedTokensRef.current = tokens;
2026-10-23T11:12:18.2842058Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-23T11:12:18.2842245Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2842361Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2842434Z 163 โ return JSON.stringify(
2026-10-23T11:12:18.2842486Z โฐโโโโ
2026-10-23T11:12:18.2842944Z 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-23T11:12:18.2843285Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2843321Z
2026-10-23T11:12:18.2843464Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2843607Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:204:5]
2026-10-23T11:12:18.2843681Z 203 โ mostRecentEventCount,
2026-10-23T11:12:18.2843768Z 204 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2843875Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2844064Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2844120Z 205 โ );
2026-10-23T11:12:18.2844170Z โฐโโโโ
2026-10-23T11:12:18.2844633Z 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-23T11:12:18.2844928Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2844931Z
2026-10-23T11:12:18.2845074Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2845216Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:210:5]
2026-10-23T11:12:18.2845285Z 209 โ mostRecentEventCount,
2026-10-23T11:12:18.2845377Z 210 โ nativeEventSnapshotsRef.current,
2026-10-23T11:12:18.2845483Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2845669Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2845728Z 211 โ );
2026-10-23T11:12:18.2845785Z โฐโโโโ
2026-10-23T11:12:18.2846241Z 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-23T11:12:18.2846530Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2846532Z
2026-10-23T11:12:18.2846719Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-23T11:12:18.2846858Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:195:6]
2026-10-23T11:12:18.2846982Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-23T11:12:18.2847099Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-23T11:12:18.2847211Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2847683Z ยท โฐโโ 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-23T11:12:18.2847742Z 161 โ });
2026-10-23T11:12:18.2847834Z 162 โ confirmedTokensRef.current = tokens;
2026-10-23T11:12:18.2847907Z 163 โ return JSON.stringify(
2026-10-23T11:12:18.2848068Z 164 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-23T11:12:18.2848138Z 165 โ const record =
2026-10-23T11:12:18.2848220Z 166 โ token.type === "context"
2026-10-23T11:12:18.2848438Z 167 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-23T11:12:18.2848538Z 168 โ : undefined;
2026-10-23T11:12:18.2848650Z 169 โ const presentation = contextChipPresentation(
2026-10-23T11:12:18.2848761Z 170 โ token.type === "context" ? token.kind : token.type,
2026-10-23T11:12:18.2848825Z 171 โ record,
2026-10-23T11:12:18.2848884Z 172 โ );
2026-10-23T11:12:18.2848969Z 173 โ const icon = contextChipIcon(
2026-10-23T11:12:18.2849038Z 174 โ presentation,
2026-10-23T11:12:18.2849181Z 175 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-23T11:12:18.2849237Z 176 โ );
2026-10-23T11:12:18.2849300Z 177 โ return {
2026-10-23T11:12:18.2849373Z 178 โ type: token.type,
2026-10-23T11:12:18.2849455Z 179 โ source: token.source,
2026-10-23T11:12:18.2849529Z 180 โ start: token.start,
2026-10-23T11:12:18.2849597Z 181 โ end: token.end,
2026-10-23T11:12:18.2849684Z 182 โ accent: presentation.accent,
2026-10-23T11:12:18.2849745Z 183 โ label:
2026-10-23T11:12:18.2849821Z 184 โ token.type === "skill"
2026-10-23T11:12:18.2849930Z 185 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-23T11:12:18.2850017Z 186 โ : token.type === "context"
2026-10-23T11:12:18.2850249Z 187 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-23T11:12:18.2850331Z 188 โ : basename(token.value),
2026-10-23T11:12:18.2850476Z 189 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-23T11:12:18.2850576Z 190 โ iconUri: contextChipIconUri(icon),
2026-10-23T11:12:18.2850669Z 191 โ tintsIcon: icon.kind === "chip",
2026-10-23T11:12:18.2850725Z 192 โ };
2026-10-23T11:12:18.2850785Z 193 โ }),
2026-10-23T11:12:18.2850842Z 194 โ );
2026-10-23T11:12:18.2850940Z 195 โ }, [props.value, props.context, skillLabels]);
2026-10-23T11:12:18.2851060Z ยท โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2851258Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2851396Z 196 โ // Every render resolves against the snapshot history, so a render whose
2026-10-23T11:12:18.2851450Z โฐโโโโ
2026-10-23T11:12:18.2851651Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-23T11:12:18.2851967Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2851973Z
2026-10-23T11:12:18.2852158Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-23T11:12:18.2852299Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:257:5]
2026-10-23T11:12:18.2852427Z 249 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-23T11:12:18.2852531Z 250 โ nativeEventSnapshotsRef.current.push({
2026-10-23T11:12:18.2852623Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2853130Z ยท โฐโโ 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-23T11:12:18.2853259Z 251 โ eventCount: acknowledgedEventCount,
2026-10-23T11:12:18.2853320Z 252 โ value,
2026-10-23T11:12:18.2853400Z 253 โ selection: nextSelection,
2026-10-23T11:12:18.2853459Z 254 โ });
2026-10-23T11:12:18.2853543Z 255 โ return acknowledgedEventCount;
2026-10-23T11:12:18.2853601Z 256 โ },
2026-10-23T11:12:18.2853657Z 257 โ [],
2026-10-23T11:12:18.2853726Z ยท โโฌ
2026-10-23T11:12:18.2853903Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T11:12:18.2853960Z 258 โ );
2026-10-23T11:12:18.2854013Z โฐโโโโ
2026-10-23T11:12:18.2854217Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-23T11:12:18.2854529Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2854539Z
2026-10-23T11:12:18.2854704Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.2854837Z โญโ[apps/web/src/components/CommandPalette.tsx:1996:20]
2026-10-23T11:12:18.2854957Z 1995 โ title: inferProjectTitleFromPath(destinationPath),
2026-10-23T11:12:18.2855053Z 1996 โ createdAt: new Date().toISOString(),
2026-10-23T11:12:18.2855144Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2855291Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.2855400Z 1997 โ remoteUrl: addProjectCloneFlow.remoteUrl,
2026-10-23T11:12:18.2855458Z โฐโโโโ
2026-10-23T11:12:18.2855740Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.2856036Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.2856038Z
2026-10-23T11:12:18.2856237Z โ eslint(no-unsafe-optional-chaining): Unsafe usage of optional chaining
2026-10-23T11:12:18.2856406Z โญโ[apps/server/src/orchestration-v2/ThreadLaunchService.test.ts:1783:8]
2026-10-23T11:12:18.2856470Z 1782 โ assert.equal(
2026-10-23T11:12:18.2856616Z 1783 โ (stored.context?.records[0] as { attachmentId: string }).attachmentId,
2026-10-23T11:12:18.2856719Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2856850Z 1784 โ stored.attachments[0]?.id,
2026-10-23T11:12:18.2856947Z โฐโโโโ
2026-10-23T11:12:18.2857118Z help: If this short-circuits with 'undefined' the evaluation will throw TypeError
2026-10-23T11:12:18.2857120Z
2026-10-23T11:12:18.2857325Z โ eslint(no-unused-vars): Identifier 'HostProcess' is imported but never used.
2026-10-23T11:12:18.2857489Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:25:13]
2026-10-23T11:12:18.2857575Z 24 โ import * as Schema from "effect/Schema";
2026-10-23T11:12:18.2857745Z 25 โ import * as HostProcess from "@t3tools/shared/HostProcess";
2026-10-23T11:12:18.2857830Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.2857971Z ยท โฐโโ 'HostProcess' is imported here
2026-10-23T11:12:18.2858023Z 26 โ
2026-10-23T11:12:18.2858077Z โฐโโโโ
2026-10-23T11:12:18.2858182Z help: Consider removing this import.
2026-10-23T11:12:18.2858188Z
2026-10-23T11:12:18.2858458Z โ eslint(no-unused-vars): Variable 'serverConfig' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2858625Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:124:11]
2026-10-23T11:12:18.2858706Z 123 โ const path = yield* Path.Path;
2026-10-23T11:12:18.2858830Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-23T11:12:18.2858914Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2859054Z ยท โฐโโ 'serverConfig' is declared here
2026-10-23T11:12:18.2859195Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-23T11:12:18.2859249Z โฐโโโโ
2026-10-23T11:12:18.2859359Z help: Consider removing this declaration.
2026-10-23T11:12:18.2859364Z
2026-10-23T11:12:18.2859634Z โ eslint(no-unused-vars): Variable 'serverSettings' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2859793Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:125:11]
2026-10-23T11:12:18.2859910Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-23T11:12:18.2860048Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-23T11:12:18.2860136Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T11:12:18.2860278Z ยท โฐโโ 'serverSettings' is declared here
2026-10-23T11:12:18.2860415Z 126 โ const gitWorkflow = yield* GitWorkflowService.GitWorkflowService;
2026-10-23T11:12:18.2860469Z โฐโโโโ
2026-10-23T11:12:18.2860579Z help: Consider removing this declaration.
2026-10-23T11:12:18.2860585Z
2026-10-23T11:12:18.2860790Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-23T11:12:18.2860924Z โญโ[apps/web/src/lib/composerContextReferences.ts:90:40]
2026-10-23T11:12:18.2861001Z 89 โ let cursor = prompt.length;
2026-10-23T11:12:18.2861109Z 90 โ for (const occurrence of occurrences.reverse()) {
2026-10-23T11:12:18.2861213Z ยท โโโโโโโ
2026-10-23T11:12:18.2861298Z 91 โ let { start, end } = occurrence;
2026-10-23T11:12:18.2861353Z โฐโโโโ
2026-10-23T11:12:18.2861614Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-23T11:12:18.2861616Z
2026-10-23T11:12:18.2861889Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T11:12:18.2862097Z โญโ[apps/mobile/src/features/threads/NewTaskContextPickerScreens.tsx:370:7]
2026-10-23T11:12:18.2862180Z 369 โ mountedRef.current = false;
2026-10-23T11:12:18.2862258Z 370 โ flow.setBranchQuery("");
2026-10-23T11:12:18.2862331Z ยท โโโฌโ
2026-10-23T11:12:18.2862455Z ยท โฐโโ Missing dependency `flow`
2026-10-23T11:12:18.2862514Z 371 โ };
2026-10-23T11:12:18.2862589Z 372 โ }, [flow.setBranchQuery]);
2026-10-23T11:12:18.2862674Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2862877Z ยท โฐโโ Overly precise dependency `flow.setBranchQuery`, use `flow` instead
2026-10-23T11:12:18.2862935Z 373 โ
2026-10-23T11:12:18.2862995Z โฐโโโโ
2026-10-23T11:12:18.2863414Z 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-23T11:12:18.2863725Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2863728Z
2026-10-23T11:12:18.2863985Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2864148Z โญโ[apps/mobile/src/features/threads/NewTaskDraftRouteScreen.tsx:40:5]
2026-10-23T11:12:18.2864264Z 37 โ const [initialized, setInitialized] = useState(false);
2026-10-23T11:12:18.2864335Z 38 โ useLayoutEffect(() => {
2026-10-23T11:12:18.2864417Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2864549Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2864612Z 39 โ reset();
2026-10-23T11:12:18.2864678Z 40 โ setInitialized(true);
2026-10-23T11:12:18.2864757Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T11:12:18.2864926Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2864991Z 41 โ }, [reset]);
2026-10-23T11:12:18.2865042Z โฐโโโโ
2026-10-23T11:12:18.2865643Z 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-23T11:12:18.2865967Z 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-23T11:12:18.2865969Z
2026-10-23T11:12:18.2866225Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2866386Z โญโ[apps/mobile/src/features/threads/NewTaskDraftRouteScreen.tsx:93:5]
2026-10-23T11:12:18.2866438Z 88 โ
2026-10-23T11:12:18.2866511Z 89 โ useEffect(() => {
2026-10-23T11:12:18.2866585Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2866710Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2866870Z 90 โ if (!needsPreparation || !initialProjectRef.branch || waitingForProject) return;
2026-10-23T11:12:18.2867033Z 91 โ const branchName = initialProjectRef.branch;
2026-10-23T11:12:18.2867135Z 92 โ let active = true;
2026-10-23T11:12:18.2867230Z 93 โ setPendingCheckouts((count) => count + 1);
2026-10-23T11:12:18.2867316Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2867487Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2867653Z 94 โ // Serialize replacements: ignoring a stale result cannot undo its Git mutation.
2026-10-23T11:12:18.2867729Z โฐโโโโ
2026-10-23T11:12:18.2868321Z 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-23T11:12:18.2868646Z 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-23T11:12:18.2868653Z
2026-10-23T11:12:18.2868908Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2869074Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:215:7]
2026-10-23T11:12:18.2869128Z 211 โ };
2026-10-23T11:12:18.2869196Z 212 โ useEffect(() => {
2026-10-23T11:12:18.2869270Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2869400Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2869574Z 213 โ const inserted = ownerKey ? readComposerDraftSelection(ownerKey, draftMessage) : null;
2026-10-23T11:12:18.2869646Z 214 โ if (inserted) {
2026-10-23T11:12:18.2869726Z 215 โ setSelection((current) =>
2026-10-23T11:12:18.2869808Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2869973Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2870145Z 216 โ current.start === inserted.start && current.end === inserted.end ? current : inserted,
2026-10-23T11:12:18.2870199Z โฐโโโโ
2026-10-23T11:12:18.2870792Z 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-23T11:12:18.2871113Z 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-23T11:12:18.2871118Z
2026-10-23T11:12:18.2871368Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2871532Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:296:7]
2026-10-23T11:12:18.2871611Z 284 โ }, [hasWorkspaceSnapshot]);
2026-10-23T11:12:18.2871676Z 285 โ useEffect(() => {
2026-10-23T11:12:18.2871746Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2871875Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2872021Z 286 โ if (!environmentId || !projectCwd || !selectedProviderInstanceId) return;
2026-10-23T11:12:18.2872217Z 287 โ const key = `${environmentId}:${selectedProviderInstanceId}:${projectCwd}`;
2026-10-23T11:12:18.2872421Z 288 โ const now = Date.now();
2026-10-23T11:12:18.2872535Z 289 โ const lastRequest = workspaceRefreshKeyRef.current;
2026-10-23T11:12:18.2872594Z 290 โ if (
2026-10-23T11:12:18.2872673Z 291 โ lastRequest?.key === key &&
2026-10-23T11:12:18.2872811Z 292 โ now - lastRequest.requestedAt < PROVIDER_WORKSPACE_SNAPSHOT_TTL_MS
2026-10-23T11:12:18.2872866Z 293 โ )
2026-10-23T11:12:18.2872926Z 294 โ return;
2026-10-23T11:12:18.2873100Z 295 โ if (hasCurrentProviderWorkspaceSnapshot(selectedProviderStatus, projectCwd, now)) {
2026-10-23T11:12:18.2873186Z 296 โ setWorkspaceRefreshRetry(null);
2026-10-23T11:12:18.2873283Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2873461Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2873531Z 297 โ return;
2026-10-23T11:12:18.2873586Z โฐโโโโ
2026-10-23T11:12:18.2874175Z 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-23T11:12:18.2874494Z 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-23T11:12:18.2874496Z
2026-10-23T11:12:18.2874694Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2874856Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:326:5]
2026-10-23T11:12:18.2874914Z 325 โ }, [
2026-10-23T11:12:18.2874982Z 326 โ draftMessage,
2026-10-23T11:12:18.2875058Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2875202Z ยท โฐโโ Unnecessary dependency `draftMessage`
2026-10-23T11:12:18.2875265Z 327 โ environmentId,
2026-10-23T11:12:18.2875318Z โฐโโโโ
2026-10-23T11:12:18.2875678Z 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-23T11:12:18.2875984Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2875987Z
2026-10-23T11:12:18.2876260Z โ eslint(no-unused-vars): Variable 'useDragRegion' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2876408Z โญโ[apps/web/src/components/preview/PreviewPanelShell.tsx:61:9]
2026-10-23T11:12:18.2876466Z 60 โ ) {
2026-10-23T11:12:18.2876635Z 61 โ const useDragRegion = isElectron && props.mode !== "sheet" && props.mode !== "embedded";
2026-10-23T11:12:18.2876715Z ยท โโโโโโโฌโโโโโโ
2026-10-23T11:12:18.2876855Z ยท โฐโโ 'useDragRegion' is declared here
2026-10-23T11:12:18.2876948Z 62 โ const isInline = props.mode === "inline";
2026-10-23T11:12:18.2877000Z โฐโโโโ
2026-10-23T11:12:18.2877102Z help: Consider removing this declaration.
2026-10-23T11:12:18.2877105Z
2026-10-23T11:12:18.2877358Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2877569Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:400:5]
2026-10-23T11:12:18.2877686Z 398 โ
2026-10-23T11:12:18.2877751Z 399 โ useEffect(() => {
2026-10-23T11:12:18.2877829Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2877959Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2878051Z 400 โ setInspectorSelection((current) => {
2026-10-23T11:12:18.2878136Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2878306Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2878409Z 401 โ if (props.renderInspector === undefined) {
2026-10-23T11:12:18.2878460Z โฐโโโโ
2026-10-23T11:12:18.2879055Z 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-23T11:12:18.2879376Z 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-23T11:12:18.2879378Z
2026-10-23T11:12:18.2879592Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-23T11:12:18.2879745Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:528:24]
2026-10-23T11:12:18.2879903Z 527 โ const inspectorHeaderInset = Platform.OS === "ios" ? 0 : safeAreaInsets.top;
2026-10-23T11:12:18.2880075Z 528 โ โญโโถ const GitInspector = () => (
2026-10-23T11:12:18.2880174Z 529 โ โ <GitOverviewSheet
2026-10-23T11:12:18.2880298Z 530 โ โ headerInset={inspectorHeaderInset}
2026-10-23T11:12:18.2880407Z 531 โ โ presentation="inspector"
2026-10-23T11:12:18.2880586Z 532 โ โ route={{ params: { environmentId: environmentId!, threadId: threadId! } }}
2026-10-23T11:12:18.2880661Z 533 โ โ />
2026-10-23T11:12:18.2880791Z 534 โ โฐโโถ );
2026-10-23T11:12:18.2880874Z 535 โ const FilesInspector = () =>
2026-10-23T11:12:18.2880925Z โฐโโโโ
2026-10-23T11:12:18.2881141Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-23T11:12:18.2881144Z
2026-10-23T11:12:18.2881401Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-23T11:12:18.2881586Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:535:26]
2026-10-23T11:12:18.2881644Z 534 โ );
2026-10-23T11:12:18.2881806Z 535 โ โญโโถ const FilesInspector = () =>
2026-10-23T11:12:18.2881954Z 536 โ โ selectedThread !== null && selectedThreadCwd !== null ? (
2026-10-23T11:12:18.2882062Z 537 โ โ <ThreadFileNavigatorPane
2026-10-23T11:12:18.2882168Z 538 โ โ cwd={selectedThreadCwd}
2026-10-23T11:12:18.2882305Z 539 โ โ environmentId={selectedThread.environmentId}
2026-10-23T11:12:18.2882427Z 540 โ โ headerInset={inspectorHeaderInset}
2026-10-23T11:12:18.2882579Z 541 โ โ projectName={selectedThreadProject?.title ?? "Files"}
2026-10-23T11:12:18.2882684Z 542 โ โ selectedPath={null}
2026-10-23T11:12:18.2882811Z 543 โ โ onSelectFile={handleSelectInspectorFile}
2026-10-23T11:12:18.2882892Z 544 โ โ />
2026-10-23T11:12:18.2883030Z 545 โ โฐโโถ ) : null;
2026-10-23T11:12:18.2883182Z 546 โ const RouteInspector = () => props.renderInspector?.(inspectorHeaderInset);
2026-10-23T11:12:18.2883232Z โฐโโโโ
2026-10-23T11:12:18.2883449Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-23T11:12:18.2883451Z
2026-10-23T11:12:18.2883791Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T11:12:18.2883937Z โญโ[packages/effect-codex-app-server/src/schema.test.ts:50:18]
2026-10-23T11:12:18.2884095Z 49 โ for (const tool of ["sendMessage", "followupTask", "interruptAgent", "listAgents"]) {
2026-10-23T11:12:18.2884262Z 50 โ assert.equal(Schema.is(CodexSchema.ServerNotification__CollabAgentTool)(tool), true);
2026-10-23T11:12:18.2884346Z ยท โโโโโโโโโ
2026-10-23T11:12:18.2884526Z 51 โ assert.equal(Schema.is(CodexSchema.V2ThreadResumeResponse__CollabAgentTool)(tool), true);
2026-10-23T11:12:18.2884578Z โฐโโโโ
2026-10-23T11:12:18.2884581Z
2026-10-23T11:12:18.2884904Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T11:12:18.2885052Z โญโ[packages/effect-codex-app-server/src/schema.test.ts:51:18]
2026-10-23T11:12:18.2885222Z 50 โ assert.equal(Schema.is(CodexSchema.ServerNotification__CollabAgentTool)(tool), true);
2026-10-23T11:12:18.2885398Z 51 โ assert.equal(Schema.is(CodexSchema.V2ThreadResumeResponse__CollabAgentTool)(tool), true);
2026-10-23T11:12:18.2885481Z ยท โโโโโโโโโ
2026-10-23T11:12:18.2885534Z 52 โ }
2026-10-23T11:12:18.2885587Z โฐโโโโ
2026-10-23T11:12:18.2885590Z
2026-10-23T11:12:18.2885919Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T11:12:18.2886058Z โญโ[packages/effect-codex-app-server/src/schema.test.ts:55:5]
2026-10-23T11:12:18.2886122Z 54 โ assert.equal(
2026-10-23T11:12:18.2886339Z 55 โ Schema.is(CodexSchema.ServerNotification__CollabAgentToolCallStatus)("interrupted"),
2026-10-23T11:12:18.2886443Z ยท โโโโโโโโโ
2026-10-23T11:12:18.2886503Z 56 โ true,
2026-10-23T11:12:18.2886553Z โฐโโโโ
2026-10-23T11:12:18.2886555Z
2026-10-23T11:12:18.2886878Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T11:12:18.2887017Z โญโ[packages/effect-codex-app-server/src/schema.test.ts:59:5]
2026-10-23T11:12:18.2887081Z 58 โ assert.equal(
2026-10-23T11:12:18.2887257Z 59 โ Schema.is(CodexSchema.V2ThreadResumeResponse__CollabAgentToolCallStatus)("interrupted"),
2026-10-23T11:12:18.2887330Z ยท โโโโโโโโโ
2026-10-23T11:12:18.2887386Z 60 โ true,
2026-10-23T11:12:18.2887439Z โฐโโโโ
2026-10-23T11:12:18.2887441Z
2026-10-23T11:12:18.2887807Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T11:12:18.2887958Z โญโ[packages/effect-codex-app-server/src/schema.test.ts:103:16]
2026-10-23T11:12:18.2888011Z 102 โ
2026-10-23T11:12:18.2888180Z 103 โ assert.equal(Schema.is(CodexSchema.V2ThreadResumeResponse)(resumeResponse), true);
2026-10-23T11:12:18.2888264Z ยท โโโโโโโโโ
2026-10-23T11:12:18.2888320Z 104 โ });
2026-10-23T11:12:18.2888372Z โฐโโโโ
2026-10-23T11:12:18.2888375Z
2026-10-23T11:12:18.2888519Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2888674Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:122:38]
2026-10-23T11:12:18.2888837Z 121 โ const audioLevelsRef = useRef(Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0));
2026-10-23T11:12:18.2888962Z 122 โ const audioLevels = useSharedValue(audioLevelsRef.current);
2026-10-23T11:12:18.2889084Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2889258Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2889377Z 123 โ const sessionRef = useRef<VoiceInputSession | null>(null);
2026-10-23T11:12:18.2889427Z โฐโโโโ
2026-10-23T11:12:18.2889895Z 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-23T11:12:18.2890194Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2890199Z
2026-10-23T11:12:18.2890339Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2890498Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:8]
2026-10-23T11:12:18.2890553Z 125 โ
2026-10-23T11:12:18.2890664Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2890749Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2890900Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2891002Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2891053Z โฐโโโโ
2026-10-23T11:12:18.2891564Z 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-23T11:12:18.2891885Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2891887Z
2026-10-23T11:12:18.2892028Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2892183Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:7]
2026-10-23T11:12:18.2892236Z 125 โ
2026-10-23T11:12:18.2892341Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2892427Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2892574Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2892679Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2892733Z โฐโโโโ
2026-10-23T11:12:18.2893190Z 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-23T11:12:18.2893476Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2893478Z
2026-10-23T11:12:18.2893619Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2893775Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:31]
2026-10-23T11:12:18.2893827Z 125 โ
2026-10-23T11:12:18.2893940Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2894059Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2894225Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2894324Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2894379Z โฐโโโโ
2026-10-23T11:12:18.2894836Z 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-23T11:12:18.2895125Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2895127Z
2026-10-23T11:12:18.2895272Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2895428Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:126:30]
2026-10-23T11:12:18.2895481Z 125 โ
2026-10-23T11:12:18.2895586Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2895701Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2895863Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2895964Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2896014Z โฐโโโโ
2026-10-23T11:12:18.2896519Z 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-23T11:12:18.2896842Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2896844Z
2026-10-23T11:12:18.2896985Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2897139Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:127:46]
2026-10-23T11:12:18.2897250Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2897440Z 127 โ โญโโถ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2897626Z 128 โ โ create: () => new AudioModule.AudioRecorder(VOICE_RECORDING_OPTIONS),
2026-10-23T11:12:18.2897758Z 129 โ โ onStatus: (status: RecordingStatus) => {
2026-10-23T11:12:18.2897918Z 130 โ โ sessionRef.current?.controller.handleRecorderStatus({
2026-10-23T11:12:18.2898038Z 131 โ โ isFinished: status.isFinished,
2026-10-23T11:12:18.2898211Z 132 โ โ hasError: status.hasError || status.mediaServicesDidReset === true,
2026-10-23T11:12:18.2898316Z 133 โ โ error: status.error,
2026-10-23T11:12:18.2898415Z 134 โ โ url: status.url,
2026-10-23T11:12:18.2898497Z 135 โ โ });
2026-10-23T11:12:18.2898573Z 136 โ โ },
2026-10-23T11:12:18.2898770Z 137 โ โ // Read when recording starts so preference changes do not re-render every composer.
2026-10-23T11:12:18.2898883Z 138 โ โ selectInput: (inputs) => {
2026-10-23T11:12:18.2899039Z 139 โ โ const preferences = registry.get(mobilePreferencesAtom);
2026-10-23T11:12:18.2899181Z 140 โ โ if (!AsyncResult.isSuccess(preferences)) return null;
2026-10-23T11:12:18.2899345Z 141 โ โ const known = microphoneOrder(preferences.value.microphones);
2026-10-23T11:12:18.2899483Z 142 โ โ const order = rememberMicrophones(known, inputs);
2026-10-23T11:12:18.2899586Z 143 โ โ if (order !== known) {
2026-10-23T11:12:18.2899722Z 144 โ โ registry.set(updateMobilePreferencesAtom, {
2026-10-23T11:12:18.2899837Z 145 โ โ transform: (current) => ({
2026-10-23T11:12:18.2900045Z 146 โ โ microphones: rememberMicrophones(microphoneOrder(current.microphones), inputs),
2026-10-23T11:12:18.2900135Z 147 โ โ }),
2026-10-23T11:12:18.2900214Z 148 โ โ });
2026-10-23T11:12:18.2900294Z 149 โ โ }
2026-10-23T11:12:18.2900432Z 150 โ โ return preferredMicrophoneInput(inputs, order);
2026-10-23T11:12:18.2900509Z 151 โ โ },
2026-10-23T11:12:18.2900638Z 152 โ โโโถ });
2026-10-23T11:12:18.2900873Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.2900960Z 153 โ recorderRef.current = recorder;
2026-10-23T11:12:18.2901013Z โฐโโโโ
2026-10-23T11:12:18.2901519Z 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-23T11:12:18.2901836Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2901838Z
2026-10-23T11:12:18.2901980Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2902139Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:153:16]
2026-10-23T11:12:18.2902196Z 152 โ });
2026-10-23T11:12:18.2902276Z 153 โ recorderRef.current = recorder;
2026-10-23T11:12:18.2902391Z ยท โโโโโโฌโโโโโโโโโโฌโโโ
2026-10-23T11:12:18.2902581Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2902702Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2902807Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-23T11:12:18.2902858Z โฐโโโโ
2026-10-23T11:12:18.2903318Z 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-23T11:12:18.2903604Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2903606Z
2026-10-23T11:12:18.2903753Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2903909Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:154:48]
2026-10-23T11:12:18.2903995Z 153 โ recorderRef.current = recorder;
2026-10-23T11:12:18.2904188Z 154 โ โญโโถ sessionRef.current = new VoiceInputSession({
2026-10-23T11:12:18.2904276Z 155 โ โ recorder,
2026-10-23T11:12:18.2904405Z 156 โ โ getTranscriber: getLocalVoiceTranscriber,
2026-10-23T11:12:18.2904522Z 157 โ โ requestPermission: async () => {
2026-10-23T11:12:18.2904687Z 158 โ โ const permission = await requestRecordingPermissionsAsync();
2026-10-23T11:12:18.2904878Z 159 โ โ return { granted: permission.granted, canAskAgain: permission.canAskAgain };
2026-10-23T11:12:18.2904962Z 160 โ โ },
2026-10-23T11:12:18.2905104Z 161 โ โ configureRecording: configureVoiceRecordingAudio,
2026-10-23T11:12:18.2905240Z 162 โ โ releaseRecording: releaseVoiceRecordingAudio,
2026-10-23T11:12:18.2905375Z 163 โ โ deleteRecording: (uri) => new File(uri).delete(),
2026-10-23T11:12:18.2905487Z 164 โ โ onStateChange: (nextState) =>
2026-10-23T11:12:18.2905577Z 165 โ โ setState({
2026-10-23T11:12:18.2905682Z 166 โ โ state: nextState,
2026-10-23T11:12:18.2905820Z 167 โ โ ownerKey: sessionRef.current?.ownerKey ?? null,
2026-10-23T11:12:18.2905949Z 168 โ โ label: sessionRef.current?.label ?? null,
2026-10-23T11:12:18.2906084Z 169 โ โ }),
2026-10-23T11:12:18.2906247Z 170 โ โโโถ });
2026-10-23T11:12:18.2906459Z ยท โฐโโโโ Cannot access ref value during render
2026-10-23T11:12:18.2906517Z 171 โ }
2026-10-23T11:12:18.2906568Z โฐโโโโ
2026-10-23T11:12:18.2907031Z 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-23T11:12:18.2907317Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2907320Z
2026-10-23T11:12:18.2907467Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2907657Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:154:15]
2026-10-23T11:12:18.2907738Z 153 โ recorderRef.current = recorder;
2026-10-23T11:12:18.2907845Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-23T11:12:18.2907958Z ยท โโโโโโฌโโโโโโโโโฌโโโ
2026-10-23T11:12:18.2908140Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2908255Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2908320Z 155 โ recorder,
2026-10-23T11:12:18.2908373Z โฐโโโโ
2026-10-23T11:12:18.2908836Z 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-23T11:12:18.2909124Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2909129Z
2026-10-23T11:12:18.2909269Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2909426Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:185:7]
2026-10-23T11:12:18.2909513Z 184 โ return () => subscription.remove();
2026-10-23T11:12:18.2909578Z 185 โ }, [controller]);
2026-10-23T11:12:18.2909654Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2909799Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2909906Z 186 โ
2026-10-23T11:12:18.2909989Z โฐโโโโ
2026-10-23T11:12:18.2910447Z 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-23T11:12:18.2910732Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2910734Z
2026-10-23T11:12:18.2910877Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2911033Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:185:6]
2026-10-23T11:12:18.2911118Z 184 โ return () => subscription.remove();
2026-10-23T11:12:18.2911185Z 185 โ }, [controller]);
2026-10-23T11:12:18.2911268Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.2911412Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2911463Z 186 โ
2026-10-23T11:12:18.2911516Z โฐโโโโ
2026-10-23T11:12:18.2911972Z 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-23T11:12:18.2912263Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2912265Z
2026-10-23T11:12:18.2912406Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2912562Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:192:6]
2026-10-23T11:12:18.2912625Z 191 โ },
2026-10-23T11:12:18.2912699Z 192 โ [controller, recorder],
2026-10-23T11:12:18.2912776Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2912915Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2912973Z 193 โ );
2026-10-23T11:12:18.2913026Z โฐโโโโ
2026-10-23T11:12:18.2913478Z 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-23T11:12:18.2913761Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2913764Z
2026-10-23T11:12:18.2913909Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2914068Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:175:20]
2026-10-23T11:12:18.2914160Z 174 โ const controller = session.controller;
2026-10-23T11:12:18.2914245Z 175 โ const recorder = recorderRef.current;
2026-10-23T11:12:18.2914351Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2914506Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2914560Z 176 โ
2026-10-23T11:12:18.2914610Z โฐโโโโ
2026-10-23T11:12:18.2915118Z 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-23T11:12:18.2915438Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2915440Z
2026-10-23T11:12:18.2915640Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2915797Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:192:5]
2026-10-23T11:12:18.2915852Z 191 โ },
2026-10-23T11:12:18.2915925Z 192 โ [controller, recorder],
2026-10-23T11:12:18.2916017Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2916164Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2916217Z 193 โ );
2026-10-23T11:12:18.2916271Z โฐโโโโ
2026-10-23T11:12:18.2916735Z 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-23T11:12:18.2917026Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2917028Z
2026-10-23T11:12:18.2917169Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2917321Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:246:20]
2026-10-23T11:12:18.2917413Z 245 โ return () => clearInterval(intervalId);
2026-10-23T11:12:18.2917526Z 246 โ }, [audioLevels, controller, recorder, state.phase]);
2026-10-23T11:12:18.2917643Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2917804Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2917861Z 247 โ
2026-10-23T11:12:18.2917913Z โฐโโโโ
2026-10-23T11:12:18.2918373Z 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-23T11:12:18.2918657Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2918662Z
2026-10-23T11:12:18.2918801Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2918961Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:246:6]
2026-10-23T11:12:18.2919055Z 245 โ return () => clearInterval(intervalId);
2026-10-23T11:12:18.2919164Z 246 โ }, [audioLevels, controller, recorder, state.phase]);
2026-10-23T11:12:18.2919291Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2919451Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2919505Z 247 โ
2026-10-23T11:12:18.2919557Z โฐโโโโ
2026-10-23T11:12:18.2920010Z 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-23T11:12:18.2920360Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2920406Z
2026-10-23T11:12:18.2920546Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2920702Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:261:5]
2026-10-23T11:12:18.2920768Z 260 โ setOwnerFocused,
2026-10-23T11:12:18.2920832Z 261 โ session,
2026-10-23T11:12:18.2920904Z ยท โโโโฌโโโ
2026-10-23T11:12:18.2921043Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2921101Z 262 โ stop,
2026-10-23T11:12:18.2921155Z โฐโโโโ
2026-10-23T11:12:18.2921616Z 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-23T11:12:18.2921905Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2921907Z
2026-10-23T11:12:18.2922048Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2922201Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:251:10]
2026-10-23T11:12:18.2922258Z 250 โ
2026-10-23T11:12:18.2922399Z 251 โ โญโโถ return {
2026-10-23T11:12:18.2922609Z 252 โ โ isAvailable: getLocalVoiceTranscriber() !== null || getNativeShowcaseScene() !== null,
2026-10-23T11:12:18.2922690Z 253 โ โ state,
2026-10-23T11:12:18.2922786Z 254 โ โ audioLevels,
2026-10-23T11:12:18.2922886Z 255 โ โ elapsedSeconds,
2026-10-23T11:12:18.2923017Z 256 โ โ isBusy: voiceInputBlocksSubmission(state),
2026-10-23T11:12:18.2923097Z 257 โ โ ownerKey,
2026-10-23T11:12:18.2923178Z 258 โ โ label,
2026-10-23T11:12:18.2923270Z 259 โ โ focusedOwners,
2026-10-23T11:12:18.2923366Z 260 โ โ setOwnerFocused,
2026-10-23T11:12:18.2923444Z 261 โ โ session,
2026-10-23T11:12:18.2923526Z 262 โ โ stop,
2026-10-23T11:12:18.2923607Z 263 โ โ cancel,
2026-10-23T11:12:18.2923737Z 264 โ โโโถ };
2026-10-23T11:12:18.2923938Z ยท โฐโโโโ Cannot access ref value during render
2026-10-23T11:12:18.2924001Z 265 โ }
2026-10-23T11:12:18.2924054Z โฐโโโโ
2026-10-23T11:12:18.2924517Z 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-23T11:12:18.2924800Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2924806Z
2026-10-23T11:12:18.2924964Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2925125Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:212:7]
2026-10-23T11:12:18.2925336Z 121 โ const audioLevelsRef = useRef(Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0));
2026-10-23T11:12:18.2925492Z 122 โ const audioLevels = useSharedValue(audioLevelsRef.current);
2026-10-23T11:12:18.2925571Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.2925707Z ยท โฐโโ `audioLevels` originates here
2026-10-23T11:12:18.2925830Z 123 โ const sessionRef = useRef<VoiceInputSession | null>(null);
2026-10-23T11:12:18.2925978Z 124 โ const recorderRef = useRef<LazyVoiceRecorder<RecorderState> | null>(null);
2026-10-23T11:12:18.2926029Z 125 โ
2026-10-23T11:12:18.2926137Z 126 โ if (!sessionRef.current || !recorderRef.current) {
2026-10-23T11:12:18.2926238Z 127 โ const recorder = createLazyVoiceRecorder({
2026-10-23T11:12:18.2926380Z 128 โ create: () => new AudioModule.AudioRecorder(VOICE_RECORDING_OPTIONS),
2026-10-23T11:12:18.2926480Z 129 โ onStatus: (status: RecordingStatus) => {
2026-10-23T11:12:18.2926606Z 130 โ sessionRef.current?.controller.handleRecorderStatus({
2026-10-23T11:12:18.2926694Z 131 โ isFinished: status.isFinished,
2026-10-23T11:12:18.2926837Z 132 โ hasError: status.hasError || status.mediaServicesDidReset === true,
2026-10-23T11:12:18.2926909Z 133 โ error: status.error,
2026-10-23T11:12:18.2926979Z 134 โ url: status.url,
2026-10-23T11:12:18.2927041Z 135 โ });
2026-10-23T11:12:18.2927099Z 136 โ },
2026-10-23T11:12:18.2927260Z 137 โ // Read when recording starts so preference changes do not re-render every composer.
2026-10-23T11:12:18.2927341Z 138 โ selectInput: (inputs) => {
2026-10-23T11:12:18.2927465Z 139 โ const preferences = registry.get(mobilePreferencesAtom);
2026-10-23T11:12:18.2927585Z 140 โ if (!AsyncResult.isSuccess(preferences)) return null;
2026-10-23T11:12:18.2927758Z 141 โ const known = microphoneOrder(preferences.value.microphones);
2026-10-23T11:12:18.2927867Z 142 โ const order = rememberMicrophones(known, inputs);
2026-10-23T11:12:18.2927944Z 143 โ if (order !== known) {
2026-10-23T11:12:18.2928053Z 144 โ registry.set(updateMobilePreferencesAtom, {
2026-10-23T11:12:18.2928134Z 145 โ transform: (current) => ({
2026-10-23T11:12:18.2928305Z 146 โ microphones: rememberMicrophones(microphoneOrder(current.microphones), inputs),
2026-10-23T11:12:18.2928370Z 147 โ }),
2026-10-23T11:12:18.2928434Z 148 โ });
2026-10-23T11:12:18.2928490Z 149 โ }
2026-10-23T11:12:18.2928601Z 150 โ return preferredMicrophoneInput(inputs, order);
2026-10-23T11:12:18.2928660Z 151 โ },
2026-10-23T11:12:18.2928715Z 152 โ });
2026-10-23T11:12:18.2928806Z 153 โ recorderRef.current = recorder;
2026-10-23T11:12:18.2928917Z 154 โ sessionRef.current = new VoiceInputSession({
2026-10-23T11:12:18.2928979Z 155 โ recorder,
2026-10-23T11:12:18.2929078Z 156 โ getTranscriber: getLocalVoiceTranscriber,
2026-10-23T11:12:18.2929165Z 157 โ requestPermission: async () => {
2026-10-23T11:12:18.2929296Z 158 โ const permission = await requestRecordingPermissionsAsync();
2026-10-23T11:12:18.2929454Z 159 โ return { granted: permission.granted, canAskAgain: permission.canAskAgain };
2026-10-23T11:12:18.2929509Z 160 โ },
2026-10-23T11:12:18.2929620Z 161 โ configureRecording: configureVoiceRecordingAudio,
2026-10-23T11:12:18.2929727Z 162 โ releaseRecording: releaseVoiceRecordingAudio,
2026-10-23T11:12:18.2929830Z 163 โ deleteRecording: (uri) => new File(uri).delete(),
2026-10-23T11:12:18.2929964Z 164 โ onStateChange: (nextState) =>
2026-10-23T11:12:18.2930062Z 165 โ setState({
2026-10-23T11:12:18.2930132Z 166 โ state: nextState,
2026-10-23T11:12:18.2930239Z 167 โ ownerKey: sessionRef.current?.ownerKey ?? null,
2026-10-23T11:12:18.2930336Z 168 โ label: sessionRef.current?.label ?? null,
2026-10-23T11:12:18.2930398Z 169 โ }),
2026-10-23T11:12:18.2930454Z 170 โ });
2026-10-23T11:12:18.2930509Z 171 โ }
2026-10-23T11:12:18.2930560Z 172 โ
2026-10-23T11:12:18.2930647Z 173 โ const session = sessionRef.current;
2026-10-23T11:12:18.2930736Z 174 โ const controller = session.controller;
2026-10-23T11:12:18.2930820Z 175 โ const recorder = recorderRef.current;
2026-10-23T11:12:18.2930878Z 176 โ
2026-10-23T11:12:18.2930946Z 177 โ useEffect(() => {
2026-10-23T11:12:18.2931103Z 178 โ const subscription = AppState.addEventListener("change", (nextState) => {
2026-10-23T11:12:18.2931244Z 179 โ // iOS reports `inactive` while its permission dialog is open. Only the
2026-10-23T11:12:18.2931381Z 180 โ // real background state cancels preparation; recorder status handles
2026-10-23T11:12:18.2931490Z 181 โ // calls and route interruptions during capture.
2026-10-23T11:12:18.2931627Z 182 โ if (nextState === "background") controller.appMovedToBackground();
2026-10-23T11:12:18.2931682Z 183 โ });
2026-10-23T11:12:18.2931769Z 184 โ return () => subscription.remove();
2026-10-23T11:12:18.2931836Z 185 โ }, [controller]);
2026-10-23T11:12:18.2931891Z 186 โ
2026-10-23T11:12:18.2931951Z 187 โ useEffect(
2026-10-23T11:12:18.2932016Z 188 โ () => () => {
2026-10-23T11:12:18.2932090Z 189 โ controller.dispose();
2026-10-23T11:12:18.2932161Z 190 โ recorder.release();
2026-10-23T11:12:18.2932220Z 191 โ },
2026-10-23T11:12:18.2932295Z 192 โ [controller, recorder],
2026-10-23T11:12:18.2932353Z 193 โ );
2026-10-23T11:12:18.2932406Z 194 โ
2026-10-23T11:12:18.2932468Z 195 โ useEffect(() => {
2026-10-23T11:12:18.2932563Z 196 โ if (state.phase !== "recording") return;
2026-10-23T11:12:18.2932617Z 197 โ
2026-10-23T11:12:18.2932765Z 198 โ const tag = `voice-input:${keepAwakeId}:${++keepAwakeSessionRef.current}`;
2026-10-23T11:12:18.2932870Z 199 โ const activation = activateKeepAwakeAsync(tag);
2026-10-23T11:12:18.2932951Z 200 โ void activation.catch(() => {});
2026-10-23T11:12:18.2933014Z 201 โ return () => {
2026-10-23T11:12:18.2933162Z 202 โ // Release after activation settles, even if the recording ends immediately.
2026-10-23T11:12:18.2933300Z 203 โ void activation.then(() => deactivateKeepAwake(tag)).catch(() => {});
2026-10-23T11:12:18.2933361Z 204 โ };
2026-10-23T11:12:18.2933445Z 205 โ }, [keepAwakeId, state.phase]);
2026-10-23T11:12:18.2933496Z 206 โ
2026-10-23T11:12:18.2933562Z 207 โ useEffect(() => {
2026-10-23T11:12:18.2933695Z 208 โ if (state.phase !== "preparing" && state.phase !== "recording") return;
2026-10-23T11:12:18.2933749Z 209 โ
2026-10-23T11:12:18.2933868Z 210 โ if (audioLevelsRef.current.some((level) => level !== 0)) {
2026-10-23T11:12:18.2934022Z 211 โ audioLevelsRef.current = Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0);
2026-10-23T11:12:18.2934129Z 212 โ audioLevels.value = audioLevelsRef.current;
2026-10-23T11:12:18.2934207Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.2934345Z ยท โฐโโ `audioLevels` cannot be modified
2026-10-23T11:12:18.2934402Z 213 โ }
2026-10-23T11:12:18.2934456Z โฐโโโโ
2026-10-23T11:12:18.2934785Z 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-23T11:12:18.2935122Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2935128Z
2026-10-23T11:12:18.2935326Z โ react(immutability): Cannot modify local variables after render completes
2026-10-23T11:12:18.2935484Z โญโ[apps/mobile/src/features/voice-input/VoiceInputProvider.tsx:212:7]
2026-10-23T11:12:18.2935540Z 206 โ
2026-10-23T11:12:18.2935606Z 207 โ useEffect(() => {
2026-10-23T11:12:18.2935684Z ยท โโโโฌโโโ
2026-10-23T11:12:18.2935907Z ยท โฐโโ This function may (indirectly) reassign or modify `audioLevels` after render
2026-10-23T11:12:18.2936047Z 208 โ if (state.phase !== "preparing" && state.phase !== "recording") return;
2026-10-23T11:12:18.2936102Z 209 โ
2026-10-23T11:12:18.2936219Z 210 โ if (audioLevelsRef.current.some((level) => level !== 0)) {
2026-10-23T11:12:18.2936376Z 211 โ audioLevelsRef.current = Array<number>(VOICE_WAVEFORM_SAMPLE_COUNT).fill(0);
2026-10-23T11:12:18.2936481Z 212 โ audioLevels.value = audioLevelsRef.current;
2026-10-23T11:12:18.2936559Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.2936691Z ยท โฐโโ This modifies `audioLevels`
2026-10-23T11:12:18.2936749Z 213 โ }
2026-10-23T11:12:18.2936803Z โฐโโโโ
2026-10-23T11:12:18.2937143Z 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-23T11:12:18.2937447Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2937450Z
2026-10-23T11:12:18.2937596Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2937796Z โญโ[apps/mobile/src/features/voice-input/useVoiceInputController.ts:27:14]
2026-10-23T11:12:18.2937882Z 26 โ const latestInput = useRef(input);
2026-10-23T11:12:18.2937957Z 27 โ latestInput.current = input;
2026-10-23T11:12:18.2938071Z ยท โโโโโโฌโโโโโโโโโโฌโโโ
2026-10-23T11:12:18.2938255Z ยท โ โฐโโ Cannot update ref value during render
2026-10-23T11:12:18.2938425Z ยท โฐโโ This value is a ref
2026-10-23T11:12:18.2938534Z 28 โ const mounted = useRef(true);
2026-10-23T11:12:18.2938589Z โฐโโโโ
2026-10-23T11:12:18.2939053Z 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-23T11:12:18.2939342Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2939345Z
2026-10-23T11:12:18.2939500Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2939665Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:93:5]
2026-10-23T11:12:18.2939722Z 90 โ }) {
2026-10-23T11:12:18.2939841Z 91 โ const rotation = useSharedValue(props.hidden ? 1 : 0);
2026-10-23T11:12:18.2939919Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.2940048Z ยท โฐโโ `rotation` originates here
2026-10-23T11:12:18.2940118Z 92 โ useLayoutEffect(() => {
2026-10-23T11:12:18.2940262Z 93 โ rotation.value = withTiming(props.hidden ? 1 : 0, TOOLBAR_FLIP_TIMING);
2026-10-23T11:12:18.2940335Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.2940464Z ยท โฐโโ `rotation` cannot be modified
2026-10-23T11:12:18.2940542Z 94 โ }, [props.hidden, rotation]);
2026-10-23T11:12:18.2940596Z โฐโโโโ
2026-10-23T11:12:18.2940861Z 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-23T11:12:18.2941164Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2941171Z
2026-10-23T11:12:18.2941328Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2941498Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:269:5]
2026-10-23T11:12:18.2941594Z 266 โ const variant = props.variant ?? "plain";
2026-10-23T11:12:18.2941728Z 267 โ const loadingVisibility = useSharedValue(props.loading ? 1 : 0);
2026-10-23T11:12:18.2941813Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2941963Z ยท โฐโโ `loadingVisibility` originates here
2026-10-23T11:12:18.2942033Z 268 โ useLayoutEffect(() => {
2026-10-23T11:12:18.2942197Z 269 โ loadingVisibility.value = withTiming(props.loading ? 1 : 0, DICTATION_TIMING);
2026-10-23T11:12:18.2942280Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.2942427Z ยท โฐโโ `loadingVisibility` cannot be modified
2026-10-23T11:12:18.2942520Z 270 โ }, [loadingVisibility, props.loading]);
2026-10-23T11:12:18.2942572Z โฐโโโโ
2026-10-23T11:12:18.2942831Z 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-23T11:12:18.2943137Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2943140Z
2026-10-23T11:12:18.2943295Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2943516Z โญโ[apps/mobile/src/features/voice-input/ComposerDictationControl.tsx:328:5]
2026-10-23T11:12:18.2943601Z 325 โ }) {
2026-10-23T11:12:18.2943761Z 326 โ const recordingVisibility = useSharedValue(props.phase === "recording" ? 1 : 0);
2026-10-23T11:12:18.2943851Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2944003Z ยท โฐโโ `recordingVisibility` originates here
2026-10-23T11:12:18.2944071Z 327 โ useLayoutEffect(() => {
2026-10-23T11:12:18.2944259Z 328 โ recordingVisibility.value = withTiming(props.phase === "recording" ? 1 : 0, DICTATION_TIMING);
2026-10-23T11:12:18.2944348Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2944501Z ยท โฐโโ `recordingVisibility` cannot be modified
2026-10-23T11:12:18.2944591Z 329 โ }, [props.phase, recordingVisibility]);
2026-10-23T11:12:18.2944645Z โฐโโโโ
2026-10-23T11:12:18.2944912Z 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-23T11:12:18.2945218Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2945220Z
2026-10-23T11:12:18.2945373Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2945535Z โญโ[apps/mobile/src/features/voice-input/GlobalVoiceInputControl.tsx:68:5]
2026-10-23T11:12:18.2945640Z 65 โ const [expanded, setExpanded] = useState(false);
2026-10-23T11:12:18.2945726Z 66 โ const progress = useSharedValue(0);
2026-10-23T11:12:18.2945803Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.2945934Z ยท โฐโโ `progress` originates here
2026-10-23T11:12:18.2946007Z 67 โ useEffect(() => {
2026-10-23T11:12:18.2946131Z 68 โ progress.value = withTiming(expanded ? 1 : 0, MORPH_TIMING);
2026-10-23T11:12:18.2946203Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.2946330Z ยท โฐโโ `progress` cannot be modified
2026-10-23T11:12:18.2946403Z 69 โ }, [expanded, progress]);
2026-10-23T11:12:18.2946456Z โฐโโโโ
2026-10-23T11:12:18.2946713Z 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-23T11:12:18.2947013Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2947015Z
2026-10-23T11:12:18.2947214Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T11:12:18.2947375Z โญโ[apps/mobile/src/features/terminal/TerminalContextSheet.tsx:72:15]
2026-10-23T11:12:18.2947442Z 71 โ <Pressable
2026-10-23T11:12:18.2947505Z 72 โ key={index}
2026-10-23T11:12:18.2947592Z ยท โโโโโโโโโโโ
2026-10-23T11:12:18.2947690Z 73 โ accessibilityRole="button"
2026-10-23T11:12:18.2947773Z โฐโโโโ
2026-10-23T11:12:18.2947916Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T11:12:18.2947919Z
2026-10-23T11:12:18.2948175Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2948335Z โญโ[apps/mobile/src/features/terminal/terminalLaunchContext.ts:117:5]
2026-10-23T11:12:18.2948662Z 112 โ const [entry, setEntry] = useState(() => ({ key: input.targetKey, location: candidate }));
2026-10-23T11:12:18.2948785Z 113 โ useEffect(() => {
2026-10-23T11:12:18.2948855Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2948988Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2949153Z 114 โ if (entry.key === input.targetKey && (entry.location !== null || candidate === null)) {
2026-10-23T11:12:18.2949215Z 115 โ return;
2026-10-23T11:12:18.2949269Z 116 โ }
2026-10-23T11:12:18.2949391Z 117 โ setEntry({ key: input.targetKey, location: candidate });
2026-10-23T11:12:18.2949465Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.2949630Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2949758Z 118 โ }, [candidate, entry.key, entry.location, input.targetKey]);
2026-10-23T11:12:18.2949814Z โฐโโโโ
2026-10-23T11:12:18.2950411Z 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-23T11:12:18.2950733Z 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-23T11:12:18.2950735Z
2026-10-23T11:12:18.2950991Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2951163Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:643:5]
2026-10-23T11:12:18.2951223Z 638 โ
2026-10-23T11:12:18.2951293Z 639 โ useEffect(() => {
2026-10-23T11:12:18.2951363Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2951493Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2951605Z 640 โ if (pendingLaunchEntry.key === launchTargetKey) {
2026-10-23T11:12:18.2951669Z 641 โ return;
2026-10-23T11:12:18.2951722Z 642 โ }
2026-10-23T11:12:18.2951799Z 643 โ setPendingLaunchEntry({
2026-10-23T11:12:18.2951889Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2952086Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2952157Z 644 โ key: launchTargetKey,
2026-10-23T11:12:18.2952211Z โฐโโโโ
2026-10-23T11:12:18.2952811Z 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-23T11:12:18.2953131Z 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-23T11:12:18.2953134Z
2026-10-23T11:12:18.2953387Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2953554Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:653:5]
2026-10-23T11:12:18.2953608Z 648 โ
2026-10-23T11:12:18.2953678Z 649 โ useEffect(() => {
2026-10-23T11:12:18.2953751Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2953929Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2954087Z 650 โ if (initialAttachGridEntry.key === launchTargetKey) {
2026-10-23T11:12:18.2954149Z 651 โ return;
2026-10-23T11:12:18.2954205Z 652 โ }
2026-10-23T11:12:18.2954286Z 653 โ setInitialAttachGridEntry({
2026-10-23T11:12:18.2954381Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2954553Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2954625Z 654 โ key: launchTargetKey,
2026-10-23T11:12:18.2954676Z โฐโโโโ
2026-10-23T11:12:18.2955273Z 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-23T11:12:18.2955649Z 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-23T11:12:18.2955651Z
2026-10-23T11:12:18.2955906Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2956076Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:746:7]
2026-10-23T11:12:18.2956128Z 743 โ
2026-10-23T11:12:18.2956193Z 744 โ useEffect(() => {
2026-10-23T11:12:18.2956263Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2956393Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2956496Z 745 โ if (!routeEnvironmentId || !routeThreadId) {
2026-10-23T11:12:18.2956571Z 746 โ setLastGridSize({
2026-10-23T11:12:18.2956655Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2956822Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2956918Z 747 โ cols: DEFAULT_TERMINAL_COLS,
2026-10-23T11:12:18.2956973Z โฐโโโโ
2026-10-23T11:12:18.2957561Z 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-23T11:12:18.2957911Z 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-23T11:12:18.2957917Z
2026-10-23T11:12:18.2958118Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2958285Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:538:24]
2026-10-23T11:12:18.2958344Z 537 โ });
2026-10-23T11:12:18.2958481Z 538 โ }, [terminal.buffer, terminal.buffer.length, terminalKey]);
2026-10-23T11:12:18.2958593Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2958834Z ยท โฐโโ Overly precise dependency `terminal.buffer.length`, use `terminal.buffer` instead
2026-10-23T11:12:18.2958997Z 539 โ const cwd = terminal.summary?.cwd ?? selectedThreadProject?.workspaceRoot ?? null;
2026-10-23T11:12:18.2959050Z โฐโโโโ
2026-10-23T11:12:18.2959405Z 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-23T11:12:18.2959751Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2959756Z
2026-10-23T11:12:18.2959952Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2960119Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:709:7]
2026-10-23T11:12:18.2960217Z 708 โ sentInitialInputKeyRef.current = null;
2026-10-23T11:12:18.2960286Z 709 โ }, [terminalKey]);
2026-10-23T11:12:18.2960362Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.2960515Z ยท โฐโโ Unnecessary dependency `terminalKey`
2026-10-23T11:12:18.2960573Z 710 โ
2026-10-23T11:12:18.2960625Z โฐโโโโ
2026-10-23T11:12:18.2960909Z 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-23T11:12:18.2961217Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2961219Z
2026-10-23T11:12:18.2961417Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.2961585Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:800:52]
2026-10-23T11:12:18.2961642Z 799 โ };
2026-10-23T11:12:18.2961825Z 800 โ }, [canOperateTerminal, isRunning, pasteSession, terminal.lifecycleVersion, terminalKey]);
2026-10-23T11:12:18.2962007Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ โโโโโโฌโโโโโ
2026-10-23T11:12:18.2962239Z ยท โ โฐโโ Unnecessary dependency `terminalKey`
2026-10-23T11:12:18.2962448Z ยท โฐโโ Unnecessary dependency `terminal.lifecycleVersion`
2026-10-23T11:12:18.2962499Z 801 โ
2026-10-23T11:12:18.2962554Z โฐโโโโ
2026-10-23T11:12:18.2962843Z 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-23T11:12:18.2963198Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.2963238Z
2026-10-23T11:12:18.2963379Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.2963548Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:793:24]
2026-10-23T11:12:18.2963604Z 792 โ }
2026-10-23T11:12:18.2963712Z 793 โ const pasteSession = pasteSessionRef.current;
2026-10-23T11:12:18.2963823Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T11:12:18.2963986Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.2964041Z 794 โ
2026-10-23T11:12:18.2964093Z โฐโโโโ
2026-10-23T11:12:18.2964563Z 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-23T11:12:18.2964858Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.2964860Z
2026-10-23T11:12:18.2965045Z โ react(static-components): Cannot create components during render
2026-10-23T11:12:18.2965205Z โญโ[apps/mobile/src/features/terminal/NativeTerminalSurface.tsx:234:10]
2026-10-23T11:12:18.2965293Z 196 โ const { onInput, onResize } = props;
2026-10-23T11:12:18.2965440Z 197 โ const NativeTerminalSurfaceView = resolveNativeTerminalSurfaceView();
2026-10-23T11:12:18.2965576Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2965765Z ยท โฐโโ The component is created during render here
2026-10-23T11:12:18.2965894Z 198 โ const hasNativeSurface = Boolean(NativeTerminalSurfaceView);
2026-10-23T11:12:18.2965945Z 199 โ
2026-10-23T11:12:18.2966014Z 200 โ useEffect(() => {
2026-10-23T11:12:18.2966106Z 201 โ terminalDebugLog("native:surface", {
2026-10-23T11:12:18.2966193Z 202 โ terminalKey: props.terminalKey,
2026-10-23T11:12:18.2966268Z 203 โ native: hasNativeSurface,
2026-10-23T11:12:18.2966404Z 204 โ hardwareKeyRevision: getNativeTerminalHardwareKeyRevision(),
2026-10-23T11:12:18.2966491Z 205 โ bufferLen: props.buffer.length,
2026-10-23T11:12:18.2966572Z 206 โ isRunning: props.isRunning,
2026-10-23T11:12:18.2966627Z 207 โ });
2026-10-23T11:12:18.2966793Z 208 โ }, [hasNativeSurface, props.buffer.length, props.isRunning, props.terminalKey]);
2026-10-23T11:12:18.2966884Z 209 โ const handleNativeInput = useCallback(
2026-10-23T11:12:18.2967002Z 210 โ (event: NativeSyntheticEvent<TerminalInputEvent>) => {
2026-10-23T11:12:18.2967098Z 211 โ if (!props.isRunning || props.readOnly) {
2026-10-23T11:12:18.2967162Z 212 โ return;
2026-10-23T11:12:18.2967220Z 213 โ }
2026-10-23T11:12:18.2967312Z 214 โ terminalDebugLog("native:onInput", {
2026-10-23T11:12:18.2967460Z 215 โ codes: Array.from(event.nativeEvent.data, (char) => char.codePointAt(0)),
2026-10-23T11:12:18.2967521Z 216 โ });
2026-10-23T11:12:18.2967621Z 217 โ onInput(event.nativeEvent.data);
2026-10-23T11:12:18.2967679Z 218 โ },
2026-10-23T11:12:18.2967810Z 219 โ [onInput, props.isRunning, props.readOnly],
2026-10-23T11:12:18.2967868Z 220 โ );
2026-10-23T11:12:18.2968016Z 221 โ const handleNativeResize = useCallback(
2026-10-23T11:12:18.2968173Z 222 โ (event: NativeSyntheticEvent<TerminalResizeEvent>) => {
2026-10-23T11:12:18.2968235Z 223 โ onResize({
2026-10-23T11:12:18.2968320Z 224 โ cols: event.nativeEvent.cols,
2026-10-23T11:12:18.2968404Z 225 โ rows: event.nativeEvent.rows,
2026-10-23T11:12:18.2968459Z 226 โ });
2026-10-23T11:12:18.2968516Z 227 โ },
2026-10-23T11:12:18.2968579Z 228 โ [onResize],
2026-10-23T11:12:18.2968633Z 229 โ );
2026-10-23T11:12:18.2968684Z 230 โ
2026-10-23T11:12:18.2968769Z 231 โ if (NativeTerminalSurfaceView) {
2026-10-23T11:12:18.2968830Z 232 โ return (
2026-10-23T11:12:18.2968910Z 233 โ <View style={props.style}>
2026-10-23T11:12:18.2968989Z 234 โ <NativeTerminalSurfaceView
2026-10-23T11:12:18.2969099Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.2969263Z ยท โฐโโ This component is created during render
2026-10-23T11:12:18.2969360Z 235 โ appearanceScheme={themeAppearance}
2026-10-23T11:12:18.2969410Z โฐโโโโ
2026-10-23T11:12:18.2969657Z help: Components created during render will reset their state each time they are created. Declare components outside of render
2026-10-23T11:12:18.2969972Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-23T11:12:18.2969974Z
2026-10-23T11:12:18.2970421Z โ 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-23T11:12:18.2970552Z โญโ[apps/server/src/serverSettings.test.ts:1741:32]
2026-10-23T11:12:18.2970721Z 1740 โ const model = createModelSelection(ProviderInstanceId.make("codex"), "gpt-5.5");
2026-10-23T11:12:18.2970906Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-23T11:12:18.2971022Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2971134Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-23T11:12:18.2971187Z โฐโโโโ
2026-10-23T11:12:18.2971189Z
2026-10-23T11:12:18.2971644Z โ 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-23T11:12:18.2971774Z โญโ[apps/server/src/serverSettings.test.ts:1742:34]
2026-10-23T11:12:18.2971960Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-23T11:12:18.2972078Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-23T11:12:18.2972195Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2972313Z 1743 โ Schema.fromJsonString(Schema.Array(ProjectScript)),
2026-10-23T11:12:18.2972368Z โฐโโโโ
2026-10-23T11:12:18.2972370Z
2026-10-23T11:12:18.2972529Z โ react(immutability): This value cannot be modified
2026-10-23T11:12:18.2972699Z โญโ[apps/mobile/src/features/connection/ConnectionStatusDot.tsx:58:7]
2026-10-23T11:12:18.2972802Z 53 โ function usePulseAnimation(pulse: boolean) {
2026-10-23T11:12:18.2972895Z 54 โ const pulseProgress = useSharedValue(0);
2026-10-23T11:12:18.2973028Z ยท โโโโโโโฌโโโโโโ
2026-10-23T11:12:18.2973218Z ยท โฐโโ `pulseProgress` originates here
2026-10-23T11:12:18.2973272Z 55 โ
2026-10-23T11:12:18.2973338Z 56 โ useEffect(() => {
2026-10-23T11:12:18.2973398Z 57 โ if (pulse) {
2026-10-23T11:12:18.2973488Z 58 โ pulseProgress.value = withRepeat(
2026-10-23T11:12:18.2973570Z ยท โโโโโโโฌโโโโโโ
2026-10-23T11:12:18.2973726Z ยท โฐโโ `pulseProgress` cannot be modified
2026-10-23T11:12:18.2973793Z 59 โ withTiming(1, {
2026-10-23T11:12:18.2973846Z โฐโโโโ
2026-10-23T11:12:18.2974111Z 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-23T11:12:18.2974423Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T11:12:18.2974430Z
2026-10-23T11:12:18.2974868Z โ 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-23T11:12:18.2974997Z โญโ[apps/server/src/assets/AssetAccess.test.ts:1043:32]
2026-10-23T11:12:18.2975137Z 1042 โ expect(error._tag).toBe("AssetGitHubMediaUrlValidationError");
2026-10-23T11:12:18.2975323Z 1043 โ const encoded = yield* Schema.encodeEffect(Schema.fromJsonString(AssetAccessError))(error);
2026-10-23T11:12:18.2975438Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.2975537Z 1044 โ expect(encoded).not.toContain(url);
2026-10-23T11:12:18.2975594Z โฐโโโโ
2026-10-23T11:12:18.2975597Z
2026-10-23T11:12:18.2975822Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-23T11:12:18.2975946Z โญโ[apps/server/src/terminal/Manager.test.ts:731:31]
2026-10-23T11:12:18.2976007Z 730 โ );
2026-10-23T11:12:18.2976178Z 731 โ const snapshot = events.filter((event) => event.type === "snapshot").at(-1)?.snapshot;
2026-10-23T11:12:18.2976278Z ยท โโโโโโ
2026-10-23T11:12:18.2976400Z 732 โ expect(snapshot?.history).toBe("aa๐\rEND");
2026-10-23T11:12:18.2976452Z โฐโโโโ
2026-10-23T11:12:18.2976622Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-23T11:12:18.2976624Z
2026-10-23T11:12:18.2977093Z โ 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-23T11:12:18.2977277Z โญโ[apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts:223:5]
2026-10-23T11:12:18.2977351Z 222 โ let idlePasses = 0;
2026-10-23T11:12:18.2977494Z 223 โ โญโโถ for (;;) {
2026-10-23T11:12:18.2977645Z 224 โ โ yield* Effect.promise(() => Promise.resolve());
2026-10-23T11:12:18.2977823Z 225 โ โ const pending = backgroundRuntime.pending.shift();
2026-10-23T11:12:18.2977923Z 226 โ โ if (!pending) {
2026-10-23T11:12:18.2978076Z 227 โ โ idlePasses++;
2026-10-23T11:12:18.2978218Z 228 โ โ if (idlePasses >= 3) {
2026-10-23T11:12:18.2978305Z 229 โ โ return;
2026-10-23T11:12:18.2978386Z 230 โ โ }
2026-10-23T11:12:18.2978471Z 231 โ โ continue;
2026-10-23T11:12:18.2978550Z 232 โ โ }
2026-10-23T11:12:18.2978644Z 233 โ โ idlePasses = 0;
2026-10-23T11:12:18.2978762Z 234 โ โ const exit = yield* Effect.exit(
2026-10-23T11:12:18.2978973Z 235 โ โ pending.operation as Effect.Effect<unknown, unknown, ManagedRelay.ManagedRelayClient>,
2026-10-23T11:12:18.2979053Z 236 โ โ );
2026-10-23T11:12:18.2979160Z 237 โ โ yield* Effect.sync(() => {
2026-10-23T11:12:18.2979275Z 238 โ โ pending.resolve(exit);
2026-10-23T11:12:18.2979355Z 239 โ โ });
2026-10-23T11:12:18.2979487Z 240 โ โฐโโถ }
2026-10-23T11:12:18.2979547Z 241 โ },
2026-10-23T11:12:18.2979601Z โฐโโโโ
2026-10-23T11:12:18.2979605Z
2026-10-23T11:12:18.2979769Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T11:12:18.2979909Z โญโ[apps/server/src/process/externalLauncher.test.ts:186:12]
2026-10-23T11:12:18.2979965Z 185 โ
2026-10-23T11:12:18.2980067Z 186 โ for (const {} of ["darwin", "linux"] as const) {
2026-10-23T11:12:18.2980137Z ยท โโ
2026-10-23T11:12:18.2980192Z 187 โ }
2026-10-23T11:12:18.2980246Z โฐโโโโ
2026-10-23T11:12:18.2980483Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T11:12:18.2980488Z
2026-10-23T11:12:18.2980650Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T11:12:18.2980788Z โญโ[apps/server/src/process/externalLauncher.test.ts:189:12]
2026-10-23T11:12:18.2980842Z 188 โ
2026-10-23T11:12:18.2980910Z 189 โ for (const {} of [
2026-10-23T11:12:18.2980979Z ยท โโ
2026-10-23T11:12:18.2981072Z 190 โ { kind: "browser", folderVerb: "none" },
2026-10-23T11:12:18.2981127Z โฐโโโโ
2026-10-23T11:12:18.2981354Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T11:12:18.2981357Z
2026-10-23T11:12:18.2981519Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T11:12:18.2981659Z โญโ[apps/server/src/process/externalLauncher.test.ts:311:12]
2026-10-23T11:12:18.2981717Z 310 โ
2026-10-23T11:12:18.2981847Z 311 โ for (const {} of ["rejected", "spawn-error", "stalled"] as const) {
2026-10-23T11:12:18.2981916Z ยท โโ
2026-10-23T11:12:18.2981971Z 312 โ }
2026-10-23T11:12:18.2982024Z โฐโโโโ
2026-10-23T11:12:18.2982252Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T11:12:18.2982254Z
2026-10-23T11:12:18.2982417Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T11:12:18.2982550Z โญโ[apps/server/src/process/externalLauncher.test.ts:314:12]
2026-10-23T11:12:18.2982605Z 313 โ
2026-10-23T11:12:18.2982671Z 314 โ for (const {} of [
2026-10-23T11:12:18.2982791Z ยท โโ
2026-10-23T11:12:18.2982881Z 315 โ {
2026-10-23T11:12:18.2982934Z โฐโโโโ
2026-10-23T11:12:18.2983157Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T11:12:18.2983159Z
2026-10-23T11:12:18.2983618Z โ 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-23T11:12:18.2983751Z โญโ[apps/server/src/project/ProjectService.test.ts:94:3]
2026-10-23T11:12:18.2983808Z 93 โ ) {
2026-10-23T11:12:18.2984010Z 94 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T11:12:18.2984188Z 95 โ โ const project = Option.getOrThrow(yield* service.getById(projectId));
2026-10-23T11:12:18.2984309Z 96 โ โ if (predicate(project)) return project;
2026-10-23T11:12:18.2984413Z 97 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.2984537Z 98 โ โฐโโถ }
2026-10-23T11:12:18.2984689Z 99 โ return yield* Effect.die(`Project ${projectId} was not enriched in time.`);
2026-10-23T11:12:18.2984739Z โฐโโโโ
2026-10-23T11:12:18.2984742Z
2026-10-23T11:12:18.2985197Z โ 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-23T11:12:18.2985362Z โญโ[apps/server/src/project/ProjectEnrichmentService.test.ts:28:3]
2026-10-23T11:12:18.2985423Z 27 โ ) {
2026-10-23T11:12:18.2985620Z 28 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T11:12:18.2985761Z 29 โ โ const available = yield* service.peek(workspaceRoot);
2026-10-23T11:12:18.2985887Z 30 โ โ if (predicate(available)) return available;
2026-10-23T11:12:18.2985988Z 31 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.2986111Z 32 โ โฐโโถ }
2026-10-23T11:12:18.2986287Z 33 โ return yield* Effect.die(`Project metadata for ${workspaceRoot} was not resolved in time.`);
2026-10-23T11:12:18.2986340Z โฐโโโโ
2026-10-23T11:12:18.2986342Z
2026-10-23T11:12:18.2986670Z โ eslint(no-unused-vars): Variable 'layerTest' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.2986836Z โญโ[apps/server/src/telemetry/AnalyticsService.ts:340:7]
2026-10-23T11:12:18.2986888Z 339 โ
2026-10-23T11:12:18.2986994Z 340 โ const layerTest = AnalyticsService.layerTest;
2026-10-23T11:12:18.2987072Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2987207Z ยท โฐโโ 'layerTest' is declared here
2026-10-23T11:12:18.2987257Z โฐโโโโ
2026-10-23T11:12:18.2987364Z help: Consider removing this declaration.
2026-10-23T11:12:18.2987367Z
2026-10-23T11:12:18.2987573Z โ eslint(no-unused-vars): Function 'describeSchedule' is declared but never used.
2026-10-23T11:12:18.2987739Z โญโ[apps/server/src/scheduledTasks/Schedule.ts:79:10]
2026-10-23T11:12:18.2987797Z 78 โ
2026-10-23T11:12:18.2987938Z 79 โ function describeSchedule(schedule: ScheduledTaskSchedule): string {
2026-10-23T11:12:18.2988027Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2988176Z ยท โฐโโ 'describeSchedule' is declared here
2026-10-23T11:12:18.2988280Z 80 โ if (schedule.type === "webhook") return "On webhook";
2026-10-23T11:12:18.2988335Z โฐโโโโ
2026-10-23T11:12:18.2988438Z help: Consider removing this declaration.
2026-10-23T11:12:18.2988441Z
2026-10-23T11:12:18.2988697Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2988883Z โญโ[apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx:119:10]
2026-10-23T11:12:18.2988935Z 117 โ
2026-10-23T11:12:18.2989010Z 118 โ useEffect(() => {
2026-10-23T11:12:18.2989088Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2989217Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2989303Z 119 โ void refreshNotifications();
2026-10-23T11:12:18.2989396Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.2989571Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2989715Z 120 โ const subscription = AppState.addEventListener("change", (state) => {
2026-10-23T11:12:18.2989767Z โฐโโโโ
2026-10-23T11:12:18.2990371Z 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-23T11:12:18.2993164Z 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-23T11:12:18.2993168Z
2026-10-23T11:12:18.2993440Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T11:12:18.2993627Z โญโ[apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx:128:7]
2026-10-23T11:12:18.2993680Z 125 โ
2026-10-23T11:12:18.2993744Z 126 โ useEffect(() => {
2026-10-23T11:12:18.2993815Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.2993944Z ยท โฐโโ This is the containing effect
2026-10-23T11:12:18.2994010Z 127 โ if (!isLoaded) {
2026-10-23T11:12:18.2994179Z 128 โ setLiveActivityStatus("checking");
2026-10-23T11:12:18.2994309Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T11:12:18.2994481Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T11:12:18.2994543Z 129 โ return;
2026-10-23T11:12:18.2994594Z โฐโโโโ
2026-10-23T11:12:18.2995185Z 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-23T11:12:18.2995589Z 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-23T11:12:18.2995592Z
2026-10-23T11:12:18.2995799Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-23T11:12:18.2995967Z โญโ[apps/web/src/components/settings/ProviderSettingsPanel.logic.ts:4:8]
2026-10-23T11:12:18.2996039Z 3 โ AuthProvidersManageScope,
2026-10-23T11:12:18.2996109Z 4 โ type AuthSessionState,
2026-10-23T11:12:18.2996192Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.2996337Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-23T11:12:18.2996401Z 5 โ type EnvironmentId,
2026-10-23T11:12:18.2996454Z โฐโโโโ
2026-10-23T11:12:18.2996553Z help: Consider removing this import.
2026-10-23T11:12:18.2996555Z
2026-10-23T11:12:18.2997026Z โ 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-23T11:12:18.2997214Z โญโ[apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts:521:13]
2026-10-23T11:12:18.2997287Z 520 โ })).delivery;
2026-10-23T11:12:18.2997485Z 521 โ โญโโถ while (delivery.outcome === "accepted") {
2026-10-23T11:12:18.2997600Z 522 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.2997764Z 523 โ โ delivery = (yield* service.getWebhookDelivery({
2026-10-23T11:12:18.2997869Z 524 โ โ id: task.id,
2026-10-23T11:12:18.2997988Z 525 โ โ deliveryId: deliveryId!,
2026-10-23T11:12:18.2998093Z 526 โ โ })).delivery;
2026-10-23T11:12:18.2998233Z 527 โ โฐโโถ }
2026-10-23T11:12:18.2998351Z 528 โ assert.equal(delivery.outcome, "dispatch_failed");
2026-10-23T11:12:18.2998405Z โฐโโโโ
2026-10-23T11:12:18.2998407Z
2026-10-23T11:12:18.2998575Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.2998693Z โญโ[apps/web/src/hooks/useThreadActions.ts:821:56]
2026-10-23T11:12:18.2998798Z 820 โ const resolved = resolveThreadTarget(target);
2026-10-23T11:12:18.2998955Z 821 โ if (resolved && !canSnooze(resolved.thread, { now: new Date().toISOString() })) {
2026-10-23T11:12:18.2999079Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.2999324Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.2999446Z 822 โ return AsyncResult.failure(
2026-10-23T11:12:18.2999500Z โฐโโโโ
2026-10-23T11:12:18.2999779Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3000072Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3000074Z
2026-10-23T11:12:18.3000238Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.3000358Z โญโ[apps/web/src/hooks/useThreadActions.ts:709:46]
2026-10-23T11:12:18.3000432Z 708 โ const wokeAt = resolved
2026-10-23T11:12:18.3000572Z 709 โ ? threadWokeAt(resolved.thread, { now: new Date().toISOString() })
2026-10-23T11:12:18.3000687Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.3000850Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.3000914Z 710 โ : null;
2026-10-23T11:12:18.3000966Z โฐโโโโ
2026-10-23T11:12:18.3001235Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3001525Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3001527Z
2026-10-23T11:12:18.3001693Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.3001846Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:372:47]
2026-10-23T11:12:18.3001983Z 371 โ const { open, onOpenChange, onSnooze, timestampFormat } = props;
2026-10-23T11:12:18.3002135Z 372 โ const presets = open ? resolveSnoozePresets(new Date(), timestampFormat) : [];
2026-10-23T11:12:18.3002252Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.3002413Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.3002474Z 373 โ return (
2026-10-23T11:12:18.3002524Z โฐโโโโ
2026-10-23T11:12:18.3002797Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3003091Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3003097Z
2026-10-23T11:12:18.3003260Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.3003406Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:853:39]
2026-10-23T11:12:18.3003499Z 852 โ if (snoozeGateClock.thread !== thread) {
2026-10-23T11:12:18.3003629Z 853 โ setSnoozeGateClock({ thread, now: new Date().toISOString() });
2026-10-23T11:12:18.3003740Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.3003893Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.3003947Z 854 โ }
2026-10-23T11:12:18.3004001Z โฐโโโโ
2026-10-23T11:12:18.3004322Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3004643Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3004645Z
2026-10-23T11:12:18.3004823Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T11:12:18.3004983Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:100:85]
2026-10-23T11:12:18.3005088Z 99 โ const startEditor = startScheduledTaskEditor;
2026-10-23T11:12:18.3005273Z 100 โ const resetEditor = useCallback(() => startEditor(defaultEditor), [defaultEditor, startEditor]);
2026-10-23T11:12:18.3005424Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.3005633Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-23T11:12:18.3005717Z 101 โ const readEditor = useCallback(
2026-10-23T11:12:18.3005770Z โฐโโโโ
2026-10-23T11:12:18.3006082Z 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-23T11:12:18.3006388Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.3006391Z
2026-10-23T11:12:18.3006572Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T11:12:18.3006736Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:121:7]
2026-10-23T11:12:18.3006803Z 120 โ setEditor,
2026-10-23T11:12:18.3006868Z 121 โ startEditor,
2026-10-23T11:12:18.3006947Z ยท โโโโโโฌโโโโโ
2026-10-23T11:12:18.3007093Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-23T11:12:18.3007158Z 122 โ hasChanges,
2026-10-23T11:12:18.3007208Z โฐโโโโ
2026-10-23T11:12:18.3007518Z 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-23T11:12:18.3007844Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.3007847Z
2026-10-23T11:12:18.3008054Z โ eslint(no-unused-vars): Type 'ThreadRunSummary' is imported but never used.
2026-10-23T11:12:18.3008153Z โญโ[apps/web/src/types.ts:22:3]
2026-10-23T11:12:18.3008224Z 21 โ EnvironmentThreadShell,
2026-10-23T11:12:18.3008292Z 22 โ ThreadRunSummary,
2026-10-23T11:12:18.3008372Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T11:12:18.3008515Z ยท โฐโโ 'ThreadRunSummary' is imported here
2026-10-23T11:12:18.3008583Z 23 โ ThreadRuntimeSummary,
2026-10-23T11:12:18.3008638Z โฐโโโโ
2026-10-23T11:12:18.3008736Z help: Consider removing this import.
2026-10-23T11:12:18.3008738Z
2026-10-23T11:12:18.3009017Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-23T11:12:18.3009226Z โญโ[apps/web/src/components/settings/SettingInheritance.tsx:163:24]
2026-10-23T11:12:18.3009317Z 162 โ keys,
2026-10-23T11:12:18.3009390Z 163 โ overridingProjects = [],
2026-10-23T11:12:18.3009474Z ยท โโ
2026-10-23T11:12:18.3009539Z 164 โ onClearOverrides,
2026-10-23T11:12:18.3009594Z โฐโโโโ
2026-10-23T11:12:18.3009912Z 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-23T11:12:18.3009915Z
2026-10-23T11:12:18.3010172Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.3010294Z โญโ[apps/server/src/serverRuntimeStartup.ts:728:7]
2026-10-23T11:12:18.3010350Z 727 โ
2026-10-23T11:12:18.3010437Z 728 โ const layer = layerWithOptions();
2026-10-23T11:12:18.3010511Z ยท โโโฌโโ
2026-10-23T11:12:18.3010633Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.3010686Z โฐโโโโ
2026-10-23T11:12:18.3010791Z help: Consider removing this declaration.
2026-10-23T11:12:18.3010793Z
2026-10-23T11:12:18.3011045Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.3011173Z โญโ[packages/provider-pi/src/server/adapter.ts:3405:7]
2026-10-23T11:12:18.3011230Z 3404 โ
2026-10-23T11:12:18.3011421Z 3405 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, PiAdapterV2DriverEnv> =
2026-10-23T11:12:18.3011496Z ยท โโโฌโโ
2026-10-23T11:12:18.3011626Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.3011696Z 3406 โ Layer.effect(
2026-10-23T11:12:18.3011751Z โฐโโโโ
2026-10-23T11:12:18.3011853Z help: Consider removing this declaration.
2026-10-23T11:12:18.3011856Z
2026-10-23T11:12:18.3012315Z โ 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-23T11:12:18.3012463Z โญโ[apps/server/src/background/HostPowerMonitor.test.ts:133:11]
2026-10-23T11:12:18.3012597Z 132 โ const monitor = yield* HostPowerMonitor.HostPowerMonitor;
2026-10-23T11:12:18.3012744Z 133 โ โญโโถ for (
2026-10-23T11:12:18.3012852Z 134 โ โ let attempt = 0;
2026-10-23T11:12:18.3013019Z 135 โ โ attempt < 100 && (yield* monitor.snapshot).onBattery !== "true";
2026-10-23T11:12:18.3013120Z 136 โ โ attempt += 1
2026-10-23T11:12:18.3013202Z 137 โ โ ) {
2026-10-23T11:12:18.3013314Z 138 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.3013445Z 139 โ โฐโโถ }
2026-10-23T11:12:18.3013570Z 140 โ expect((yield* monitor.snapshot).onBattery).toBe("true");
2026-10-23T11:12:18.3013622Z โฐโโโโ
2026-10-23T11:12:18.3013625Z
2026-10-23T11:12:18.3013902Z โ eslint(no-unused-vars): Variable 'legacyCredentials' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.3014109Z โญโ[packages/provider-cursor/src/server/credentialStore.test.ts:15:7]
2026-10-23T11:12:18.3014198Z 14 โ
2026-10-23T11:12:18.3014270Z 15 โ const legacyCredentials = {
2026-10-23T11:12:18.3014378Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T11:12:18.3014531Z ยท โฐโโ 'legacyCredentials' is declared here
2026-10-23T11:12:18.3014600Z 16 โ version: 1 as const,
2026-10-23T11:12:18.3014657Z โฐโโโโ
2026-10-23T11:12:18.3014761Z help: Consider removing this declaration.
2026-10-23T11:12:18.3014763Z
2026-10-23T11:12:18.3014958Z โ eslint(no-unused-vars): Identifier 'Duration' is imported but never used.
2026-10-23T11:12:18.3015094Z โญโ[packages/provider-pi/src/server/adapter.test.ts:24:13]
2026-10-23T11:12:18.3015190Z 23 โ import * as Deferred from "effect/Deferred";
2026-10-23T11:12:18.3015290Z 24 โ import * as Duration from "effect/Duration";
2026-10-23T11:12:18.3015370Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.3015505Z ยท โฐโโ 'Duration' is imported here
2026-10-23T11:12:18.3015593Z 25 โ import * as Effect from "effect/Effect";
2026-10-23T11:12:18.3015646Z โฐโโโโ
2026-10-23T11:12:18.3015740Z help: Consider removing this import.
2026-10-23T11:12:18.3015743Z
2026-10-23T11:12:18.3015938Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T11:12:18.3016082Z โญโ[apps/mobile/modules/t3-source-text/src/SourceText.tsx:36:9]
2026-10-23T11:12:18.3016170Z 35 โ <T3SourceTextRunNativeComponent
2026-10-23T11:12:18.3016233Z 36 โ key={index}
2026-10-23T11:12:18.3016314Z ยท โโโโโโโโโโโ
2026-10-23T11:12:18.3016394Z 37 โ style={flattenedStyle}
2026-10-23T11:12:18.3016451Z โฐโโโโ
2026-10-23T11:12:18.3016596Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T11:12:18.3016598Z
2026-10-23T11:12:18.3016798Z โ eslint(no-unused-vars): Identifier 'identity' is imported but never used.
2026-10-23T11:12:18.3016903Z โญโ[apps/server/src/auth/http.ts:28:10]
2026-10-23T11:12:18.3017000Z 27 โ import * as Schema from "effect/Schema";
2026-10-23T11:12:18.3017091Z 28 โ import { identity } from "effect/Function";
2026-10-23T11:12:18.3017168Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.3017302Z ยท โฐโโ 'identity' is imported here
2026-10-23T11:12:18.3017389Z 29 โ import * as Layer from "effect/Layer";
2026-10-23T11:12:18.3017439Z โฐโโโโ
2026-10-23T11:12:18.3017592Z help: Consider removing this import.
2026-10-23T11:12:18.3017638Z
2026-10-23T11:12:18.3018019Z โ 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-23T11:12:18.3018147Z โญโ[apps/server/src/auth/RpcAuthorization.ts:236:17]
2026-10-23T11:12:18.3018286Z 235 โ const requiredScopesForSettingsUpdate = (payload: unknown) => {
2026-10-23T11:12:18.3018413Z 236 โ const input = Schema.decodeUnknownSync(SettingsUpdate)(payload);
2026-10-23T11:12:18.3018522Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.3018661Z 237 โ const scopes = requiredScopesForServerSettingsPatch(input.patch);
2026-10-23T11:12:18.3018715Z โฐโโโโ
2026-10-23T11:12:18.3018718Z
2026-10-23T11:12:18.3019080Z โ 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-23T11:12:18.3019206Z โญโ[apps/server/src/auth/RpcAuthorization.ts:255:26]
2026-10-23T11:12:18.3019308Z 254 โ if (method === WS_METHODS.assetsCreateUrl) {
2026-10-23T11:12:18.3019465Z 255 โ const { resource } = Schema.decodeUnknownSync(AssetCreateUrlInput)(payload);
2026-10-23T11:12:18.3019577Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T11:12:18.3019640Z 256 โ return [
2026-10-23T11:12:18.3019694Z โฐโโโโ
2026-10-23T11:12:18.3019696Z
2026-10-23T11:12:18.3019971Z โ eslint(no-unused-vars): Parameter 'stopSessions' is declared but never used. Unused parameters should start with a '_'.
2026-10-23T11:12:18.3020105Z โญโ[packages/provider-cursor/src/server/auth.ts:249:20]
2026-10-23T11:12:18.3020164Z 248 โ },
2026-10-23T11:12:18.3020246Z 249 โ (effect, flow, stopSessions) =>
2026-10-23T11:12:18.3020339Z ยท โโโโโโโฌโโโโโ
2026-10-23T11:12:18.3020486Z ยท โฐโโ 'stopSessions' is declared here
2026-10-23T11:12:18.3020553Z 250 โ effect.pipe(
2026-10-23T11:12:18.3020607Z โฐโโโโ
2026-10-23T11:12:18.3020711Z help: Consider removing this parameter.
2026-10-23T11:12:18.3020714Z
2026-10-23T11:12:18.3020965Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.3021103Z โญโ[packages/provider-opencode/src/server/adapter.ts:3755:7]
2026-10-23T11:12:18.3021158Z 3754 โ
2026-10-23T11:12:18.3021363Z 3755 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, OpenCodeAdapterV2DriverEnv> =
2026-10-23T11:12:18.3021440Z ยท โโโฌโโ
2026-10-23T11:12:18.3021563Z ยท โฐโโ 'layer' is declared here
2026-10-23T11:12:18.3021631Z 3756 โ Layer.effect(
2026-10-23T11:12:18.3021684Z โฐโโโโ
2026-10-23T11:12:18.3021787Z help: Consider removing this declaration.
2026-10-23T11:12:18.3021792Z
2026-10-23T11:12:18.3021955Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T11:12:18.3022144Z โญโ[packages/provider-opencode/src/server/OpenCodeRuntime.environment.test.ts:53:14]
2026-10-23T11:12:18.3022200Z 52 โ
2026-10-23T11:12:18.3022267Z 53 โ for (const {} of [
2026-10-23T11:12:18.3022337Z ยท โโ
2026-10-23T11:12:18.3022405Z 54 โ { healthy: true },
2026-10-23T11:12:18.3022515Z โฐโโโโ
2026-10-23T11:12:18.3022780Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T11:12:18.3022786Z
2026-10-23T11:12:18.3022988Z โ unicorn(require-module-specifiers): Empty import specifier is not allowed
2026-10-23T11:12:18.3023157Z โญโ[apps/server/src/sourceControl/SourceControlProviderRegistry.ts:15:13]
2026-10-23T11:12:18.3023232Z 14 โ } from "@t3tools/contracts";
2026-10-23T11:12:18.3023323Z 15 โ import type {} from "@t3tools/contracts";
2026-10-23T11:12:18.3023392Z ยท โโ
2026-10-23T11:12:18.3023576Z 16 โ import { detectSourceControlProviderFromRemoteUrl } from "@t3tools/shared/sourceControl";
2026-10-23T11:12:18.3023630Z โฐโโโโ
2026-10-23T11:12:18.3023713Z help: Remove empty braces
2026-10-23T11:12:18.3023722Z
2026-10-23T11:12:18.3023919Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T11:12:18.3024050Z โญโ[apps/mobile/src/components/ComposerEditor.tsx:82:6]
2026-10-23T11:12:18.3024108Z 81 โ },
2026-10-23T11:12:18.3024174Z 82 โ [draftKey],
2026-10-23T11:12:18.3024243Z ยท โโโโโฌโโโ
2026-10-23T11:12:18.3024383Z ยท โฐโโ Unnecessary dependency `draftKey`
2026-10-23T11:12:18.3024439Z 83 โ );
2026-10-23T11:12:18.3024492Z โฐโโโโ
2026-10-23T11:12:18.3024781Z 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-23T11:12:18.3025098Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.3025104Z
2026-10-23T11:12:18.3025332Z โ eslint(no-unused-vars): Function 'resolveThreadWorkspaceCwd' is declared but never used.
2026-10-23T11:12:18.3025451Z โญโ[apps/server/src/checkpointing/Utils.ts:12:10]
2026-10-23T11:12:18.3025502Z 11 โ
2026-10-23T11:12:18.3025600Z 12 โ function resolveThreadWorkspaceCwd(input: {
2026-10-23T11:12:18.3025702Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T11:12:18.3025871Z ยท โฐโโ 'resolveThreadWorkspaceCwd' is declared here
2026-10-23T11:12:18.3025937Z 13 โ readonly thread: {
2026-10-23T11:12:18.3025990Z โฐโโโโ
2026-10-23T11:12:18.3026094Z help: Consider removing this declaration.
2026-10-23T11:12:18.3026097Z
2026-10-23T11:12:18.3026366Z โ eslint(no-unused-vars): Variable 'layerTest' is declared but never used. Unused variables should start with a '_'.
2026-10-23T11:12:18.3026487Z โญโ[apps/server/src/usage/UsageService.ts:169:7]
2026-10-23T11:12:18.3026540Z 168 โ
2026-10-23T11:12:18.3026623Z 169 โ const layerTest = Layer.succeed(
2026-10-23T11:12:18.3026699Z ยท โโโโโฌโโโโ
2026-10-23T11:12:18.3026831Z ยท โฐโโ 'layerTest' is declared here
2026-10-23T11:12:18.3026898Z 170 โ UsageService,
2026-10-23T11:12:18.3026951Z โฐโโโโ
2026-10-23T11:12:18.3027053Z help: Consider removing this declaration.
2026-10-23T11:12:18.3027055Z
2026-10-23T11:12:18.3027694Z โ 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-23T11:12:18.3027856Z โญโ[apps/server/src/usage/UsageService.test.ts:2383:7]
2026-10-23T11:12:18.3027954Z 2382 โ let orphanedAt: number | undefined;
2026-10-23T11:12:18.3028184Z 2383 โ โญโโถ for (let interruptAt = 1; interruptAt <= 31; interruptAt += 1) {
2026-10-23T11:12:18.3028307Z 2384 โ โ const tasks: Array<() => void> = [];
2026-10-23T11:12:18.3028456Z 2385 โ โ const dispatcher: Scheduler.SchedulerDispatcher = {
2026-10-23T11:12:18.3028592Z 2386 โ โ scheduleTask: (task) => tasks.push(task),
2026-10-23T11:12:18.3028694Z 2387 โ โ flush: () => {
2026-10-23T11:12:18.3028827Z 2388 โ โ let task: (() => void) | undefined;
2026-10-23T11:12:18.3028977Z 2389 โ โ while ((task = tasks.shift()) !== undefined) task();
2026-10-23T11:12:18.3029062Z 2390 โ โ },
2026-10-23T11:12:18.3029146Z 2391 โ โ };
2026-10-23T11:12:18.3029219Z 2392 โ โ
2026-10-23T11:12:18.3029377Z 2393 โ โ let requestFiber: Fiber.Fiber<unknown, unknown> | undefined;
2026-10-23T11:12:18.3029486Z 2394 โ โ let requestChecks = 0;
2026-10-23T11:12:18.3029617Z 2395 โ โ const scheduler: Scheduler.Scheduler = {
2026-10-23T11:12:18.3029730Z 2396 โ โ executionMode: "async",
2026-10-23T11:12:18.3029849Z 2397 โ โ makeDispatcher: () => dispatcher,
2026-10-23T11:12:18.3029968Z 2398 โ โ shouldYield: (fiber) => {
2026-10-23T11:12:18.3030107Z 2399 โ โ if (fiber !== requestFiber) return false;
2026-10-23T11:12:18.3030213Z 2400 โ โ requestChecks += 1;
2026-10-23T11:12:18.3030353Z 2401 โ โ if (requestChecks !== interruptAt) return false;
2026-10-23T11:12:18.3030470Z 2402 โ โ fiber.interruptUnsafe();
2026-10-23T11:12:18.3030570Z 2403 โ โ return true;
2026-10-23T11:12:18.3030654Z 2404 โ โ },
2026-10-23T11:12:18.3030734Z 2405 โ โ };
2026-10-23T11:12:18.3030807Z 2406 โ โ
2026-10-23T11:12:18.3030937Z 2407 โ โ const input: UsageSummaryInput = {
2026-10-23T11:12:18.3031038Z 2408 โ โ ...WINDOW,
2026-10-23T11:12:18.3031168Z 2409 โ โ sinceDay: UsageDay.make("2026-09-01"),
2026-10-23T11:12:18.3031365Z 2410 โ โ untilDay: UsageDay.make(`2026-08-${String(interruptAt).padStart(2, "0")}`),
2026-10-23T11:12:18.3031448Z 2411 โ โ };
2026-10-23T11:12:18.3031559Z 2412 โ โ const first = yield* service
2026-10-23T11:12:18.3031668Z 2413 โ โ .readSummary(input)
2026-10-23T11:12:18.3031759Z 2414 โ โ .pipe(
2026-10-23T11:12:18.3031857Z 2415 โ โ Effect.exit,
2026-10-23T11:12:18.3032014Z 2416 โ โ Effect.provideService(Scheduler.Scheduler, scheduler),
2026-10-23T11:12:18.3032169Z 2417 โ โ Effect.forkChild,
2026-10-23T11:12:18.3032283Z 2418 โ โ );
2026-10-23T11:12:18.3032387Z 2419 โ โ requestFiber = first;
2026-10-23T11:12:18.3032492Z 2420 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.3032596Z 2421 โ โ dispatcher.flush();
2026-10-23T11:12:18.3032669Z 2422 โ โ
2026-10-23T11:12:18.3032822Z 2423 โ โ const second = yield* service.readSummary(input).pipe(
2026-10-23T11:12:18.3032918Z 2424 โ โ Effect.match({
2026-10-23T11:12:18.3033044Z 2425 โ โ onFailure: (error) => error.reason,
2026-10-23T11:12:18.3033169Z 2426 โ โ onSuccess: () => "success" as const,
2026-10-23T11:12:18.3033262Z 2427 โ โ }),
2026-10-23T11:12:18.3033416Z 2428 โ โ Effect.provideService(Scheduler.Scheduler, scheduler),
2026-10-23T11:12:18.3033520Z 2429 โ โ Effect.forkChild,
2026-10-23T11:12:18.3033603Z 2430 โ โ );
2026-10-23T11:12:18.3033709Z 2431 โ โ yield* Effect.yieldNow;
2026-10-23T11:12:18.3033808Z 2432 โ โ dispatcher.flush();
2026-10-23T11:12:18.3033938Z 2433 โ โ const secondExit = second.pollUnsafe();
2026-10-23T11:12:18.3034057Z 2434 โ โ if (secondExit === undefined) {
2026-10-23T11:12:18.3034171Z 2435 โ โ second.interruptUnsafe();
2026-10-23T11:12:18.3034282Z 2436 โ โ orphanedAt = interruptAt;
2026-10-23T11:12:18.3034375Z 2437 โ โ break;
2026-10-23T11:12:18.3034457Z 2438 โ โ }
2026-10-23T11:12:18.3034576Z 2439 โ โ if (Exit.isFailure(secondExit)) {
2026-10-23T11:12:18.3034734Z 2440 โ โ assert.fail("the matching request fiber was interrupted");
2026-10-23T11:12:18.3034811Z 2441 โ โ }
2026-10-23T11:12:18.3034962Z 2442 โ โ assert.strictEqual(secondExit.value, "invalidWindow");
2026-10-23T11:12:18.3035095Z 2443 โ โฐโโถ }
2026-10-23T11:12:18.3035154Z 2444 โ
2026-10-23T11:12:18.3035205Z โฐโโโโ
2026-10-23T11:12:18.3035207Z
2026-10-23T11:12:18.3035352Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.3035521Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:152:27]
2026-10-23T11:12:18.3035748Z 151 โ <View ref={anchorRef} collapsable={false} className={props.className} style={props.style}>
2026-10-23T11:12:18.3035827Z 152 โ {props.children(open)}
2026-10-23T11:12:18.3035918Z ยท โโโฌโ
2026-10-23T11:12:18.3036078Z ยท โฐโโ Cannot access ref value during render
2026-10-23T11:12:18.3036142Z 153 โ </View>
2026-10-23T11:12:18.3036193Z โฐโโโโ
2026-10-23T11:12:18.3036660Z 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-23T11:12:18.3037019Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.3037061Z
2026-10-23T11:12:18.3037258Z โ react(memo-dependencies): Found missing/extra memoization dependencies
2026-10-23T11:12:18.3037407Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:140:9]
2026-10-23T11:12:18.3037488Z 139 โ if (action.id !== undefined) {
2026-10-23T11:12:18.3037568Z 140 โ props.onPressAction?.({
2026-10-23T11:12:18.3037660Z ยท โโโฌโโ
2026-10-23T11:12:18.3037798Z ยท โฐโโ Missing dependency `props`
2026-10-23T11:12:18.3037891Z 141 โ nativeEvent: { event: action.id },
2026-10-23T11:12:18.3038038Z 142 โ } as Parameters<NonNullable<MenuComponentProps["onPressAction"]>>[0]);
2026-10-23T11:12:18.3038101Z 143 โ }
2026-10-23T11:12:18.3038160Z 144 โ },
2026-10-23T11:12:18.3038243Z 145 โ [close, props.onPressAction],
2026-10-23T11:12:18.3038338Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T11:12:18.3038551Z ยท โฐโโ Overly precise dependency `props.onPressAction`, use `props` instead
2026-10-23T11:12:18.3038604Z 146 โ );
2026-10-23T11:12:18.3038658Z โฐโโโโ
2026-10-23T11:12:18.3039130Z 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-23T11:12:18.3039446Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T11:12:18.3039451Z
2026-10-23T11:12:18.3039618Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.3039751Z โญโ[apps/web/src/components/CustomSnoozeDialog.tsx:140:58]
2026-10-23T11:12:18.3039886Z 139 โ {...(weekStartsOn === undefined ? {} : { weekStartsOn })}
2026-10-23T11:12:18.3040034Z 140 โ disabled={{ before: new Date(new Date().setHours(0, 0, 0, 0)) }}
2026-10-23T11:12:18.3040160Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.3040330Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.3040425Z 141 โ onSelect={(selected) => {
2026-10-23T11:12:18.3040479Z โฐโโโโ
2026-10-23T11:12:18.3040807Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3041140Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3041142Z
2026-10-23T11:12:18.3041284Z โ react(refs): Cannot access refs during render
2026-10-23T11:12:18.3041403Z โญโ[apps/mobile/src/components/ui/Menu.tsx:54:36]
2026-10-23T11:12:18.3041581Z 53 โ const child = children as ReactElement<Pick<PressableProps, "onTouchStart" | "onPress">>;
2026-10-23T11:12:18.3041752Z 54 โ โญโโถ children = cloneElement(child, {
2026-10-23T11:12:18.3041862Z 55 โ โ onTouchStart: (event) => {
2026-10-23T11:12:18.3042023Z 56 โ โ // Reset for a new touch, not onPressIn, which also fires when a
2026-10-23T11:12:18.3042179Z 57 โ โ // finger moves out of the row and back during the same gesture.
2026-10-23T11:12:18.3042306Z 58 โ โ menuPress.current.isPreparing = false;
2026-10-23T11:12:18.3042472Z 59 โ โ menuPress.current.suppressPress = menuPress.current.isOpen;
2026-10-23T11:12:18.3042583Z 60 โ โ pendingPress.current = null;
2026-10-23T11:12:18.3042705Z 61 โ โ child.props.onTouchStart?.(event);
2026-10-23T11:12:18.3042782Z 62 โ โ },
2026-10-23T11:12:18.3042884Z 63 โ โ onPress: (event) => {
2026-10-23T11:12:18.3043055Z 64 โ โ // Accessibility clicks have no touch identifier and must not inherit
2026-10-23T11:12:18.3043195Z 65 โ โ // cancellation from a previous physical gesture.
2026-10-23T11:12:18.3043362Z 66 โ โ const isTouch = typeof event.nativeEvent.identifier === "number";
2026-10-23T11:12:18.3043551Z 67 โ โ if (isTouch ? menuPress.current.suppressPress : menuPress.current.isOpen) {
2026-10-23T11:12:18.3043635Z 68 โ โ return;
2026-10-23T11:12:18.3043716Z 69 โ โ }
2026-10-23T11:12:18.3043855Z 70 โ โ if (isTouch && menuPress.current.isPreparing) {
2026-10-23T11:12:18.3044026Z 71 โ โ // A release can arrive between native menu preparation and display.
2026-10-23T11:12:18.3044193Z 72 โ โ // Let UIKit's display/cancel callback decide this press's outcome.
2026-10-23T11:12:18.3044295Z 73 โ โ event.persist();
2026-10-23T11:12:18.3044454Z 74 โ โ pendingPress.current = () => child.props.onPress?.(event);
2026-10-23T11:12:18.3044540Z 75 โ โ return;
2026-10-23T11:12:18.3044616Z 76 โ โ }
2026-10-23T11:12:18.3044730Z 77 โ โ child.props.onPress?.(event);
2026-10-23T11:12:18.3044809Z 78 โ โ },
2026-10-23T11:12:18.3044940Z 79 โ โโโถ });
2026-10-23T11:12:18.3045171Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-23T11:12:18.3045327Z 80 โ menuProps.onMenuInteractionStart = () => {
2026-10-23T11:12:18.3045415Z โฐโโโโ
2026-10-23T11:12:18.3045876Z 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-23T11:12:18.3046163Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T11:12:18.3046165Z
2026-10-23T11:12:18.3046326Z โ eslint(no-control-regex): Unexpected control character
2026-10-23T11:12:18.3046517Z โญโ[apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx:220:46]
2026-10-23T11:12:18.3046658Z 219 โ <Text selectable className="font-mono text-sm text-foreground">
2026-10-23T11:12:18.3046803Z 220 โ {interaction.output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")}
2026-10-23T11:12:18.3046914Z ยท โโโฌโ
2026-10-23T11:12:18.3047081Z ยท โฐโโ 'U+001B' is a control character.
2026-10-23T11:12:18.3047148Z 221 โ </Text>
2026-10-23T11:12:18.3047201Z โฐโโโโ
2026-10-23T11:12:18.3047426Z help: Avoid matching control characters in regular expressions. If intentional, disable this rule for the expression.
2026-10-23T11:12:18.3047431Z
2026-10-23T11:12:18.3047671Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-23T11:12:18.3047858Z โญโ[apps/web/src/components/chat/useComposerSend.ts:985:13]
2026-10-23T11:12:18.3047985Z 984 โ const changedBeforeDecline = draftChangedSinceSend();
2026-10-23T11:12:18.3048228Z 985 โ โญโโถ const pendingIdsBeforeDecline = pendingApprovalsRef.current.map(
2026-10-23T11:12:18.3048348Z 986 โ โ (approval) => approval.requestId,
2026-10-23T11:12:18.3048483Z 987 โ โฐโโถ );
2026-10-23T11:12:18.3048622Z 988 โ const approvalResponding = approvalsToDecline.some((approval) =>
2026-10-23T11:12:18.3048677Z โฐโโโโ
2026-10-23T11:12:18.3048752Z help: Switch to `Set`
2026-10-23T11:12:18.3048755Z
2026-10-23T11:12:18.3048922Z โ react(purity): Cannot call impure function during render
2026-10-23T11:12:18.3049072Z โญโ[apps/web/src/components/chat/useThreadLifecycle.tsx:178:58]
2026-10-23T11:12:18.3049184Z 177 โ if (snoozeClockState.shell !== activeThreadShell) {
2026-10-23T11:12:18.3049344Z 178 โ setSnoozeClockState({ shell: activeThreadShell, now: new Date().toISOString() });
2026-10-23T11:12:18.3049470Z ยท โโโโโโฌโโโโ
2026-10-23T11:12:18.3049641Z ยท โฐโโ Cannot call impure function
2026-10-23T11:12:18.3049695Z 179 โ }
2026-10-23T11:12:18.3049746Z โฐโโโโ
2026-10-23T11:12:18.3050022Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T11:12:18.3050360Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T11:12:18.3050396Z
2026-10-23T11:12:18.3050480Z Found 0 errors and 362 warnings in 5395 files (5.1s, 8 threads)
2026-10-23T11:12:18.3495504Z Post job cleanup.
2026-10-23T11:12:18.4086762Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-23T11:12:18.4151265Z Post job cleanup.
2026-10-23T11:12:18.4166995Z ##[start-action display=Cache full pnpm store;id=__7beabdaf-339a-4ade-923e-25fbec62ce93.__actions_cache]
2026-10-23T11:12:18.4490567Z Post job cleanup.
2026-10-23T11:12:18.5131453Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-2baa264059789b1dde4bbc8fdc5b8342f31f2fc8e6176e5c5e486efdd242b36c, not saving cache.
2026-10-23T11:12:18.5160544Z ##[end-action id=__7beabdaf-339a-4ade-923e-25fbec62ce93.__actions_cache;outcome=success;conclusion=success;duration_ms=99]
2026-10-23T11:12:18.5161996Z ##[start-action display=Cache Vite+;id=__7beabdaf-339a-4ade-923e-25fbec62ce93.vp_cache]
2026-10-23T11:12:18.5183742Z Post job cleanup.
2026-10-23T11:12:18.5774103Z 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-23T11:12:18.5804864Z ##[end-action id=__7beabdaf-339a-4ade-923e-25fbec62ce93.vp_cache;outcome=success;conclusion=success;duration_ms=64]
2026-10-23T11:12:18.5838254Z Post job cleanup.
2026-10-23T11:12:18.6230480Z [command]/usr/local/bin/git version
2026-10-23T11:12:18.6260097Z git version 2.55.0
2026-10-23T11:12:18.6279195Z Temporarily overriding HOME='/home/runner/_work/_temp/3bfa222a-ca38-428a-879b-7f97339dc00c' before making global git config changes
2026-10-23T11:12:18.6279542Z Adding repository directory to the temporary git global config as a safe directory
2026-10-23T11:12:18.6282585Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-23T11:12:18.6304116Z Removing SSH command configuration
2026-10-23T11:12:18.6307193Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-23T11:12:18.6330522Z [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-23T11:12:18.6446041Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-23T11:12:18.6468899Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-23T11:12:18.6501251Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-23T11:12:18.6512652Z ##[group]Run '/job_completed.sh'
2026-10-23T11:12:18.6517795Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-23T11:12:18.6517962Z env:
2026-10-23T11:12:18.6518070Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 278
2026-10-23T11:12:18.6518216Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 438
2026-10-23T11:12:18.6518353Z BLACKSMITH_CHECK_RUN_ID: 120383083005
2026-10-23T11:12:18.6518493Z BLACKSMITH_JOB_DISPLAY_NAME: Lint
2026-10-23T11:12:18.6518640Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-23T11:12:18.6518770Z ##[endgroup]
2026-10-23T11:12:18.6589254Z Docker container cache not activated, skipping hash computation.
2026-10-23T11:12:18.6806188Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-23T11:12:18.6844841Z Cleaning up orphan processes