GitHub check
256 KB of 598 KB loaded Download the full log (598 KB)
342 KB of earlier output not loaded
2026-10-23T22:25:17.9252233Z 154 โ โ headers: {
2026-10-23T22:25:17.9252410Z 155 โ โ authorization: options.authorization,
2026-10-23T22:25:17.9252554Z 156 โ โ "mcp-session-id": sessionId,
2026-10-23T22:25:17.9252796Z 157 โ โ ...(connection.protocolVersion === null
2026-10-23T22:25:17.9252972Z 158 โ โ ? {}
2026-10-23T22:25:17.9253191Z 159 โ โ : { "mcp-protocol-version": connection.protocolVersion }),
2026-10-23T22:25:17.9253298Z 160 โ โ },
2026-10-23T22:25:17.9253429Z 161 โ โ }),
2026-10-23T22:25:17.9253566Z 162 โ โ catch: bridgeError,
2026-10-23T22:25:17.9253703Z 163 โ โ });
2026-10-23T22:25:17.9253863Z 164 โ โ if (!response.ok && response.status !== 404) {
2026-10-23T22:25:17.9254024Z 165 โ โ return yield* Effect.fail(
2026-10-23T22:25:17.9254179Z 166 โ โ new AcpMcpOverAcpError(
2026-10-23T22:25:17.9254419Z 167 โ โ `T3 Code MCP endpoint rejected disconnect with HTTP ${response.status}.`,
2026-10-23T22:25:17.9254554Z 168 โ โ ),
2026-10-23T22:25:17.9254658Z 169 โ โ );
2026-10-23T22:25:17.9254780Z 170 โ โ }
2026-10-23T22:25:17.9255048Z 171 โ โ yield* Effect.promise(
2026-10-23T22:25:17.9255297Z 172 โ โ () => response.body?.cancel().catch(() => undefined) ?? Promise.resolve(),
2026-10-23T22:25:17.9255398Z 173 โ โ );
2026-10-23T22:25:17.9255520Z 174 โ โ }
2026-10-23T22:25:17.9255645Z 175 โ โ return {};
2026-10-23T22:25:17.9255762Z 176 โ โ });
2026-10-23T22:25:17.9255866Z 177 โ โ
2026-10-23T22:25:17.9256001Z 178 โ โ return {
2026-10-23T22:25:17.9256229Z 179 โ โ connect: Effect.fn("mcpOverAcpBridge.connect")(function* (request) {
2026-10-23T22:25:17.9256388Z 180 โ โ if (request.serverId !== "t3-code") {
2026-10-23T22:25:17.9256538Z 181 โ โ return yield* Effect.fail(
2026-10-23T22:25:17.9256785Z 182 โ โ new AcpMcpOverAcpError(`Unknown ACP MCP server "${request.serverId}".`),
2026-10-23T22:25:17.9256905Z 183 โ โ );
2026-10-23T22:25:17.9257022Z 184 โ โ }
2026-10-23T22:25:17.9257181Z 185 โ โ if (connections.size >= MAX_CONNECTIONS) {
2026-10-23T22:25:17.9257470Z 186 โ โ return yield* Effect.fail(new AcpMcpOverAcpError("Too many MCP-over-ACP connections."));
2026-10-23T22:25:17.9257603Z 187 โ โ }
2026-10-23T22:25:17.9257819Z 188 โ โ const connectionId = yield* options.allocateConnectionId;
2026-10-23T22:25:17.9258083Z 189 โ โ connections.set(connectionId, {
2026-10-23T22:25:17.9258250Z 190 โ โ mutex: yield* Semaphore.make(1),
2026-10-23T22:25:17.9258406Z 191 โ โ sessionId: null,
2026-10-23T22:25:17.9258558Z 192 โ โ protocolVersion: null,
2026-10-23T22:25:17.9258690Z 193 โ โ nextRequestId: 0,
2026-10-23T22:25:17.9258804Z 194 โ โ });
2026-10-23T22:25:17.9258985Z 195 โ โ return { connectionId };
2026-10-23T22:25:17.9259101Z 196 โ โ }),
2026-10-23T22:25:17.9259390Z 197 โ โ message: Effect.fn("mcpOverAcpBridge.message")(function* (request) {
2026-10-23T22:25:17.9259620Z 198 โ โ const connection = yield* connectionFor(request.connectionId);
2026-10-23T22:25:17.9259793Z 199 โ โ const id = ++connection.nextRequestId;
2026-10-23T22:25:17.9259978Z 200 โ โ const payloads = yield* send(connection, {
2026-10-23T22:25:17.9260122Z 201 โ โ jsonrpc: "2.0",
2026-10-23T22:25:17.9260225Z 202 โ โ id,
2026-10-23T22:25:17.9260369Z 203 โ โ method: request.method,
2026-10-23T22:25:17.9260594Z 204 โ โ ...(request.params == null ? {} : { params: request.params }),
2026-10-23T22:25:17.9260819Z 205 โ โ });
2026-10-23T22:25:17.9261040Z 206 โ โ const response = payloads.find((payload) => asEnvelope(payload)?.id === id);
2026-10-23T22:25:17.9261213Z 207 โ โ const envelope = asEnvelope(response);
2026-10-23T22:25:17.9261409Z 208 โ โ if (envelope === null) {
2026-10-23T22:25:17.9261576Z 209 โ โ return yield* Effect.fail(
2026-10-23T22:25:17.9261794Z 210 โ โ new AcpMcpOverAcpError("MCP server did not return a matching response."),
2026-10-23T22:25:17.9261921Z 211 โ โ );
2026-10-23T22:25:17.9262031Z 212 โ โ }
2026-10-23T22:25:17.9262209Z 213 โ โ if (envelope.error !== undefined) {
2026-10-23T22:25:17.9262454Z 214 โ โ return yield* Effect.fail(new AcpMcpOverAcpError(errorMessage(envelope.error)));
2026-10-23T22:25:17.9262562Z 215 โ โ }
2026-10-23T22:25:17.9262785Z 216 โ โ return (envelope.result ?? null) as AcpSchema.MessageMcpResponse;
2026-10-23T22:25:17.9262926Z 217 โ โ }),
2026-10-23T22:25:17.9263182Z 218 โ โ notification: Effect.fn("mcpOverAcpBridge.notification")(function* (request) {
2026-10-23T22:25:17.9263370Z 219 โ โ const connection = yield* connectionFor(request.connectionId);
2026-10-23T22:25:17.9263524Z 220 โ โ yield* send(connection, {
2026-10-23T22:25:17.9263659Z 221 โ โ jsonrpc: "2.0",
2026-10-23T22:25:17.9263828Z 222 โ โ method: request.method,
2026-10-23T22:25:17.9264015Z 223 โ โ ...(request.params == null ? {} : { params: request.params }),
2026-10-23T22:25:17.9264250Z 224 โ โ });
2026-10-23T22:25:17.9264370Z 225 โ โ }),
2026-10-23T22:25:17.9264503Z 226 โ โ disconnect,
2026-10-23T22:25:17.9264649Z 227 โ โ dispose: Effect.suspend(() =>
2026-10-23T22:25:17.9264796Z 228 โ โ Effect.forEach(
2026-10-23T22:25:17.9264948Z 229 โ โ [...connections.keys()],
2026-10-23T22:25:17.9265159Z 230 โ โ (connectionId) => disconnect({ connectionId }).pipe(Effect.ignore),
2026-10-23T22:25:17.9265296Z 231 โ โ { discard: true },
2026-10-23T22:25:17.9265432Z 232 โ โ ),
2026-10-23T22:25:17.9265551Z 233 โ โ ),
2026-10-23T22:25:17.9265665Z 234 โ โ };
2026-10-23T22:25:17.9265879Z 235 โ โฐโโถ });
2026-10-23T22:25:17.9266043Z โฐโโโโ
2026-10-23T22:25:17.9266356Z help: Add a `yield` expression inside the generator body, or convert it to a regular function if iteration behavior is not needed.
2026-10-23T22:25:17.9266360Z
2026-10-23T22:25:17.9266614Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9266821Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:215:7]
2026-10-23T22:25:17.9266916Z 214 โ }
2026-10-23T22:25:17.9267151Z 215 โ }, [wrappedRender]);
2026-10-23T22:25:17.9267278Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9267476Z ยท โฐโโ Unnecessary dependency `wrappedRender`
2026-10-23T22:25:17.9267545Z 216 โ
2026-10-23T22:25:17.9267658Z โฐโโโโ
2026-10-23T22:25:17.9268019Z 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-23T22:25:17.9268402Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9268405Z
2026-10-23T22:25:17.9268689Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9268905Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:817:35]
2026-10-23T22:25:17.9269011Z 816 โ >
2026-10-23T22:25:17.9269169Z 817 โ <AdaptiveWorkspaceContext value={contextValue}>
2026-10-23T22:25:17.9269339Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9269457Z 818 โ <NativeWorkspaceInspectorContext
2026-10-23T22:25:17.9269569Z โฐโโโโ
2026-10-23T22:25:17.9269842Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9270033Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9270036Z
2026-10-23T22:25:17.9270383Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9270693Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:832:42]
2026-10-23T22:25:17.9270799Z 831 โ >
2026-10-23T22:25:17.9270971Z 832 โ <AdaptiveWorkspaceContext.Provider value={contextValue}>
2026-10-23T22:25:17.9271133Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9271274Z 833 โ <WindowHingeContext value={windowHinge}>
2026-10-23T22:25:17.9271408Z โฐโโโโ
2026-10-23T22:25:17.9271691Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9271862Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9271885Z
2026-10-23T22:25:17.9272111Z โ eslint(no-unused-vars): Identifier 'Fiber' is imported but never used.
2026-10-23T22:25:17.9272259Z โญโ[apps/server/src/ws.ts:10:13]
2026-10-23T22:25:17.9272401Z 9 โ import * as Effect from "effect/Effect";
2026-10-23T22:25:17.9272534Z 10 โ import * as Fiber from "effect/Fiber";
2026-10-23T22:25:17.9272632Z ยท โโโฌโโ
2026-10-23T22:25:17.9272886Z ยท โฐโโ 'Fiber' is imported here
2026-10-23T22:25:17.9273108Z 11 โ import * as FileSystem from "effect/FileSystem";
2026-10-23T22:25:17.9273198Z โฐโโโโ
2026-10-23T22:25:17.9273322Z help: Consider removing this import.
2026-10-23T22:25:17.9273325Z
2026-10-23T22:25:17.9273665Z โ eslint(no-unused-vars): Identifier 'Schedule' is imported but never used.
2026-10-23T22:25:17.9273805Z โญโ[apps/server/src/ws.ts:17:13]
2026-10-23T22:25:17.9273941Z 16 โ import * as Ref from "effect/Ref";
2026-10-23T22:25:17.9274056Z 17 โ import * as Schedule from "effect/Schedule";
2026-10-23T22:25:17.9274177Z ยท โโโโโฌโโโ
2026-10-23T22:25:17.9274347Z ยท โฐโโ 'Schedule' is imported here
2026-10-23T22:25:17.9274511Z 18 โ import * as Schema from "effect/Schema";
2026-10-23T22:25:17.9274588Z โฐโโโโ
2026-10-23T22:25:17.9274729Z help: Consider removing this import.
2026-10-23T22:25:17.9274731Z
2026-10-23T22:25:17.9275092Z โ eslint(no-unused-vars): Variable 'projectSetupScriptRunner' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9275244Z โญโ[apps/server/src/ws.ts:1285:13]
2026-10-23T22:25:17.9275461Z 1284 โ const usageLimitSources = yield* UsageLimitSources.UsageLimitSources;
2026-10-23T22:25:17.9275689Z 1285 โ const projectSetupScriptRunner = yield* ProjectSetupScriptRunner.ProjectSetupScriptRunner;
2026-10-23T22:25:17.9275844Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9276054Z ยท โฐโโ 'projectSetupScriptRunner' is declared here
2026-10-23T22:25:17.9276297Z 1286 โ const worktreeSetupTracker = yield* WorktreeSetupTracker.WorktreeSetupTracker;
2026-10-23T22:25:17.9276373Z โฐโโโโ
2026-10-23T22:25:17.9276523Z help: Consider removing this declaration.
2026-10-23T22:25:17.9276526Z
2026-10-23T22:25:17.9276937Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9277185Z โญโ[apps/server/src/orchestration-v2/ThreadPullRequestService.ts:413:7]
2026-10-23T22:25:17.9277266Z 412 โ
2026-10-23T22:25:17.9277456Z 413 โ const layer = Layer.effect(ThreadPullRequestServiceV2, make);
2026-10-23T22:25:17.9277568Z ยท โโโฌโโ
2026-10-23T22:25:17.9277761Z ยท โฐโโ 'layer' is declared here
2026-10-23T22:25:17.9278097Z โฐโโโโ
2026-10-23T22:25:17.9278398Z help: Consider removing this declaration.
2026-10-23T22:25:17.9278555Z
2026-10-23T22:25:17.9278795Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T22:25:17.9279255Z โญโ[apps/server/src/process/externalLauncher.test.ts:186:12]
2026-10-23T22:25:17.9279539Z 185 โ
2026-10-23T22:25:17.9279918Z 186 โ for (const {} of ["darwin", "linux"] as const) {
2026-10-23T22:25:17.9280181Z ยท โโ
2026-10-23T22:25:17.9280430Z 187 โ }
2026-10-23T22:25:17.9280607Z โฐโโโโ
2026-10-23T22:25:17.9281011Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T22:25:17.9281277Z
2026-10-23T22:25:17.9289627Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T22:25:17.9290182Z โญโ[apps/server/src/process/externalLauncher.test.ts:189:12]
2026-10-23T22:25:17.9290453Z 188 โ
2026-10-23T22:25:17.9290604Z 189 โ for (const {} of [
2026-10-23T22:25:17.9290779Z ยท โโ
2026-10-23T22:25:17.9290983Z 190 โ { kind: "browser", folderVerb: "none" },
2026-10-23T22:25:17.9291195Z โฐโโโโ
2026-10-23T22:25:17.9291792Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T22:25:17.9292045Z
2026-10-23T22:25:17.9292804Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T22:25:17.9293236Z โญโ[apps/server/src/process/externalLauncher.test.ts:311:12]
2026-10-23T22:25:17.9293463Z 310 โ
2026-10-23T22:25:17.9293767Z 311 โ for (const {} of ["rejected", "spawn-error", "stalled"] as const) {
2026-10-23T22:25:17.9294018Z ยท โโ
2026-10-23T22:25:17.9294186Z 312 โ }
2026-10-23T22:25:17.9294312Z โฐโโโโ
2026-10-23T22:25:17.9294620Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T22:25:17.9294868Z
2026-10-23T22:25:17.9295053Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T22:25:17.9295384Z โญโ[apps/server/src/process/externalLauncher.test.ts:314:12]
2026-10-23T22:25:17.9295607Z 313 โ
2026-10-23T22:25:17.9295744Z 314 โ for (const {} of [
2026-10-23T22:25:17.9295916Z ยท โโ
2026-10-23T22:25:17.9296070Z 315 โ {
2026-10-23T22:25:17.9296195Z โฐโโโโ
2026-10-23T22:25:17.9296504Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T22:25:17.9296753Z
2026-10-23T22:25:17.9297048Z โ eslint(no-unused-vars): Variable 'layerDaemon' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9297484Z โญโ[apps/server/src/orchestration-v2/EffectWorker.ts:914:7]
2026-10-23T22:25:17.9297700Z 913 โ
2026-10-23T22:25:17.9297973Z 914 โ const layerDaemon: Layer.Layer<never, never, OrchestrationEffectWorkerV2> = Layer.effectDiscard(
2026-10-23T22:25:17.9298267Z ยท โโโโโโฌโโโโโ
2026-10-23T22:25:17.9298525Z ยท โฐโโ 'layerDaemon' is declared here
2026-10-23T22:25:17.9298775Z 915 โ runDaemon.pipe(Effect.forkScoped),
2026-10-23T22:25:17.9298954Z โฐโโโโ
2026-10-23T22:25:17.9299130Z help: Consider removing this declaration.
2026-10-23T22:25:17.9299265Z
2026-10-23T22:25:17.9299516Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-23T22:25:17.9299916Z โญโ[apps/mobile/src/state/use-composer-drafts.ts:1022:15]
2026-10-23T22:25:17.9300156Z 1021 โ instanceId,
2026-10-23T22:25:17.9300408Z 1022 โ { ...(persisted.modelOptionMemory[instanceId] ?? {}), ...models },
2026-10-23T22:25:17.9300724Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9300943Z 1023 โ ]),
2026-10-23T22:25:17.9301086Z โฐโโโโ
2026-10-23T22:25:17.9301487Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-23T22:25:17.9301768Z
2026-10-23T22:25:17.9302126Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9302580Z โญโ[packages/provider-grok/src/server/adapter.ts:408:7]
2026-10-23T22:25:17.9302789Z 407 โ
2026-10-23T22:25:17.9302936Z 408 โ const layer: Layer.Layer<
2026-10-23T22:25:17.9303112Z ยท โโโฌโโ
2026-10-23T22:25:17.9303345Z ยท โฐโโ 'layer' is declared here
2026-10-23T22:25:17.9303594Z 409 โ ProviderAdapter.ProviderAdapterV2,
2026-10-23T22:25:17.9303783Z โฐโโโโ
2026-10-23T22:25:17.9303956Z help: Consider removing this declaration.
2026-10-23T22:25:17.9304093Z
2026-10-23T22:25:17.9304295Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9304674Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:100:85]
2026-10-23T22:25:17.9305065Z 99 โ const startEditor = startScheduledTaskEditor;
2026-10-23T22:25:17.9305400Z 100 โ const resetEditor = useCallback(() => startEditor(defaultEditor), [defaultEditor, startEditor]);
2026-10-23T22:25:17.9305762Z ยท โโโโโโฌโโโโโ
2026-10-23T22:25:17.9306196Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-23T22:25:17.9306487Z 101 โ const readEditor = useCallback(
2026-10-23T22:25:17.9306656Z โฐโโโโ
2026-10-23T22:25:17.9307059Z 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-23T22:25:17.9307814Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9308144Z
2026-10-23T22:25:17.9308345Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9308716Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:121:7]
2026-10-23T22:25:17.9308972Z 120 โ setEditor,
2026-10-23T22:25:17.9309131Z 121 โ startEditor,
2026-10-23T22:25:17.9309307Z ยท โโโโโโฌโโโโโ
2026-10-23T22:25:17.9309572Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-23T22:25:17.9309800Z 122 โ hasChanges,
2026-10-23T22:25:17.9309950Z โฐโโโโ
2026-10-23T22:25:17.9310588Z 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-23T22:25:17.9311298Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9311664Z
2026-10-23T22:25:17.9311944Z โ eslint(no-unused-vars): Function 'promptResponseHasMissingXAiStopReason' is declared but never used.
2026-10-23T22:25:17.9312381Z โญโ[packages/provider-grok/src/server/xaiAcpExtension.ts:1620:10]
2026-10-23T22:25:17.9312612Z 1619 โ
2026-10-23T22:25:17.9312917Z 1620 โ function promptResponseHasMissingXAiStopReason(response: EffectAcpSchema.PromptResponse): boolean {
2026-10-23T22:25:17.9313278Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9313637Z ยท โฐโโ 'promptResponseHasMissingXAiStopReason' is declared here
2026-10-23T22:25:17.9313938Z 1621 โ const meta = response._meta;
2026-10-23T22:25:17.9314109Z โฐโโโโ
2026-10-23T22:25:17.9314290Z help: Consider removing this declaration.
2026-10-23T22:25:17.9314421Z
2026-10-23T22:25:17.9314646Z โ eslint(no-unused-vars): Identifier 'HostProcess' is imported but never used.
2026-10-23T22:25:17.9315039Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:25:13]
2026-10-23T22:25:17.9315319Z 24 โ import * as Schema from "effect/Schema";
2026-10-23T22:25:17.9315566Z 25 โ import * as HostProcess from "@t3tools/shared/HostProcess";
2026-10-23T22:25:17.9315805Z ยท โโโโโโฌโโโโโ
2026-10-23T22:25:17.9316147Z ยท โฐโโ 'HostProcess' is imported here
2026-10-23T22:25:17.9316359Z 26 โ
2026-10-23T22:25:17.9316487Z โฐโโโโ
2026-10-23T22:25:17.9316662Z help: Consider removing this import.
2026-10-23T22:25:17.9316795Z
2026-10-23T22:25:17.9317094Z โ eslint(no-unused-vars): Variable 'serverConfig' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9317592Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:124:11]
2026-10-23T22:25:17.9317869Z 123 โ const path = yield* Path.Path;
2026-10-23T22:25:17.9318117Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-23T22:25:17.9318351Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9318676Z ยท โฐโโ 'serverConfig' is declared here
2026-10-23T22:25:17.9318986Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-23T22:25:17.9319210Z โฐโโโโ
2026-10-23T22:25:17.9319395Z help: Consider removing this declaration.
2026-10-23T22:25:17.9319526Z
2026-10-23T22:25:17.9319845Z โ eslint(no-unused-vars): Variable 'serverSettings' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9320306Z โญโ[apps/server/src/orchestration-v2/ProviderTurnStartService.ts:125:11]
2026-10-23T22:25:17.9320619Z 124 โ const serverConfig = yield* ServerConfig.ServerConfig;
2026-10-23T22:25:17.9320914Z 125 โ const serverSettings = yield* ServerSettings.ServerSettingsService;
2026-10-23T22:25:17.9321176Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9321479Z ยท โฐโโ 'serverSettings' is declared here
2026-10-23T22:25:17.9321791Z 126 โ const gitWorkflow = yield* GitWorkflowService.GitWorkflowService;
2026-10-23T22:25:17.9322009Z โฐโโโโ
2026-10-23T22:25:17.9322264Z help: Consider removing this declaration.
2026-10-23T22:25:17.9322438Z
2026-10-23T22:25:17.9322617Z โ eslint(no-control-regex): Unexpected control character
2026-10-23T22:25:17.9323013Z โญโ[apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx:220:46]
2026-10-23T22:25:17.9323378Z 219 โ <Text selectable className="font-mono text-sm text-foreground">
2026-10-23T22:25:17.9323700Z 220 โ {interaction.output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")}
2026-10-23T22:25:17.9323976Z ยท โโโฌโ
2026-10-23T22:25:17.9324285Z ยท โฐโโ 'U+001B' is a control character.
2026-10-23T22:25:17.9324526Z 221 โ </Text>
2026-10-23T22:25:17.9324688Z โฐโโโโ
2026-10-23T22:25:17.9325006Z help: Avoid matching control characters in regular expressions. If intentional, disable this rule for the expression.
2026-10-23T22:25:17.9325258Z
2026-10-23T22:25:17.9325500Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-23T22:25:17.9325870Z โญโ[scripts/lib/cli-external-packages.test.ts:114:11]
2026-10-23T22:25:17.9326101Z 113 โ const declared = {
2026-10-23T22:25:17.9326299Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-23T22:25:17.9326544Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9326789Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-23T22:25:17.9326980Z โฐโโโโ
2026-10-23T22:25:17.9327334Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-23T22:25:17.9327618Z
2026-10-23T22:25:17.9327856Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-23T22:25:17.9328229Z โญโ[scripts/lib/cli-external-packages.test.ts:115:11]
2026-10-23T22:25:17.9328481Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-23T22:25:17.9328712Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-23T22:25:17.9328981Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9329225Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-23T22:25:17.9329408Z โฐโโโโ
2026-10-23T22:25:17.9329754Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-23T22:25:17.9330035Z
2026-10-23T22:25:17.9330274Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-23T22:25:17.9330647Z โญโ[scripts/lib/cli-external-packages.test.ts:116:11]
2026-10-23T22:25:17.9330906Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-23T22:25:17.9331160Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-23T22:25:17.9331501Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9331705Z 117 โ };
2026-10-23T22:25:17.9331844Z โฐโโโโ
2026-10-23T22:25:17.9332188Z help: Spreading falsy values in object literals won't add any unexpected properties, so it's unnecessary to add an empty object as fallback.
2026-10-23T22:25:17.9332465Z
2026-10-23T22:25:17.9332759Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9333169Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:257:7]
2026-10-23T22:25:17.9333448Z 256 โ return () => cancelAnimationFrame(frame);
2026-10-23T22:25:17.9333662Z 257 โ }, [props.path, targetIndex]);
2026-10-23T22:25:17.9333861Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9334122Z ยท โฐโโ Unnecessary dependency `props.path`
2026-10-23T22:25:17.9334341Z 258 โ
2026-10-23T22:25:17.9334462Z โฐโโโโ
2026-10-23T22:25:17.9334843Z 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-23T22:25:17.9335490Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9335825Z
2026-10-23T22:25:17.9336040Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9336407Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:293:23]
2026-10-23T22:25:17.9336659Z 292 โ <SourceText
2026-10-23T22:25:17.9336873Z 293 โ key={`${index}:${tokenIndex}`}
2026-10-23T22:25:17.9337121Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9337332Z 294 โ style={{
2026-10-23T22:25:17.9337486Z โฐโโโโ
2026-10-23T22:25:17.9337708Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9337881Z
2026-10-23T22:25:17.9338087Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9338465Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:309:27]
2026-10-23T22:25:17.9338706Z 308 โ return (
2026-10-23T22:25:17.9338895Z 309 โ <SourceText key={index}>
2026-10-23T22:25:17.9339117Z ยท โโโโโโโโโโโ
2026-10-23T22:25:17.9339311Z 310 โ {body}
2026-10-23T22:25:17.9339459Z โฐโโโโ
2026-10-23T22:25:17.9339678Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9339849Z
2026-10-23T22:25:17.9340133Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9340547Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:60:5]
2026-10-23T22:25:17.9340761Z 57 โ
2026-10-23T22:25:17.9340905Z 58 โ useEffect(() => {
2026-10-23T22:25:17.9341085Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9341322Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9341625Z 59 โ const controller = new AbortController();
2026-10-23T22:25:17.9341830Z 60 โ setLoadState("pending");
2026-10-23T22:25:17.9342019Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9342301Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9342662Z 61 โ // A renewed signature is used on Retry, not as a reason to reset the native player.
2026-10-23T22:25:17.9342898Z โฐโโโโ
2026-10-23T22:25:17.9343705Z 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-23T22:25:17.9344702Z 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-23T22:25:17.9345035Z
2026-10-23T22:25:17.9345256Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9345618Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:71:7]
2026-10-23T22:25:17.9345870Z 70 โ return () => controller.abort();
2026-10-23T22:25:17.9346089Z 71 โ }, [player, props.playRequested, attempt]);
2026-10-23T22:25:17.9346399Z ยท โโโโฌโโ โโโโโโโโโโฌโโโโโโโโโ โโโโฌโโโ
2026-10-23T22:25:17.9346823Z ยท โ โ โฐโโ Unnecessary dependency `attempt`
2026-10-23T22:25:17.9347265Z ยท โ โฐโโ Unnecessary dependency `props.playRequested`
2026-10-23T22:25:17.9347621Z ยท โฐโโ Unnecessary dependency `player_0`
2026-10-23T22:25:17.9347838Z 72 โ
2026-10-23T22:25:17.9347958Z โฐโโโโ
2026-10-23T22:25:17.9348338Z 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-23T22:25:17.9348978Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9349305Z
2026-10-23T22:25:17.9349592Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9350049Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:123:7]
2026-10-23T22:25:17.9350365Z 118 โ
2026-10-23T22:25:17.9350520Z 119 โ useEffect(() => {
2026-10-23T22:25:17.9350696Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9350931Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9351171Z 120 โ if (orientationSettled) return;
2026-10-23T22:25:17.9351443Z 121 โ const orientation = getNativeShowcaseOrientation();
2026-10-23T22:25:17.9351672Z 122 โ if (orientation === null) {
2026-10-23T22:25:17.9351874Z 123 โ setOrientationSettled(true);
2026-10-23T22:25:17.9352088Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T22:25:17.9352472Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9352768Z 124 โ return;
2026-10-23T22:25:17.9352910Z โฐโโโโ
2026-10-23T22:25:17.9353625Z 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-23T22:25:17.9354561Z 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-23T22:25:17.9354896Z
2026-10-23T22:25:17.9355173Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9355630Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:304:7]
2026-10-23T22:25:17.9355880Z 292 โ
2026-10-23T22:25:17.9356022Z 293 โ useEffect(() => {
2026-10-23T22:25:17.9356194Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9356429Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9356639Z 294 โ if (
2026-10-23T22:25:17.9356791Z 295 โ scene === null ||
2026-10-23T22:25:17.9356969Z 296 โ requestedScene === null ||
2026-10-23T22:25:17.9357158Z 297 โ scene !== requestedScene ||
2026-10-23T22:25:17.9357344Z 298 โ !hasFixture ||
2026-10-23T22:25:17.9357517Z 299 โ !orientationSettled ||
2026-10-23T22:25:17.9357707Z 300 โ !themeApplied ||
2026-10-23T22:25:17.9357930Z 301 โ (scene === "agent-activity" && !agentActivityStaged) ||
2026-10-23T22:25:17.9358228Z 302 โ !isShowcaseNativeContentReady({ scene, themeId, renderSignal })
2026-10-23T22:25:17.9358452Z 303 โ ) {
2026-10-23T22:25:17.9358604Z 304 โ setReadyScene(null);
2026-10-23T22:25:17.9358790Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9359083Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9359332Z 305 โ return;
2026-10-23T22:25:17.9359475Z โฐโโโโ
2026-10-23T22:25:17.9360188Z 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-23T22:25:17.9361127Z 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-23T22:25:17.9361500Z
2026-10-23T22:25:17.9361802Z โ eslint(no-unused-vars): Variable 'lastOutcome' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9362267Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:128:9]
2026-10-23T22:25:17.9362535Z 127 โ let cancelled = false;
2026-10-23T22:25:17.9362737Z 128 โ let lastOutcome: string | null = null;
2026-10-23T22:25:17.9362946Z ยท โโโโโโฌโโโโโ
2026-10-23T22:25:17.9363201Z ยท โฐโโ 'lastOutcome' is declared here
2026-10-23T22:25:17.9363546Z 129 โ void retryShowcaseOperation(async () => applyNativeShowcaseOrientation(orientation), {
2026-10-23T22:25:17.9363797Z โฐโโโโ
2026-10-23T22:25:17.9364054Z help: Consider removing this declaration.
2026-10-23T22:25:17.9364359Z
2026-10-23T22:25:17.9364527Z โ react(immutability): This value cannot be modified
2026-10-23T22:25:17.9364876Z โญโ[apps/mobile/src/features/connection/ConnectionStatusDot.tsx:58:7]
2026-10-23T22:25:17.9365163Z 53 โ function usePulseAnimation(pulse: boolean) {
2026-10-23T22:25:17.9365400Z 54 โ const pulseProgress = useSharedValue(0);
2026-10-23T22:25:17.9365608Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9365872Z ยท โฐโโ `pulseProgress` originates here
2026-10-23T22:25:17.9366084Z 55 โ
2026-10-23T22:25:17.9366228Z 56 โ useEffect(() => {
2026-10-23T22:25:17.9366398Z 57 โ if (pulse) {
2026-10-23T22:25:17.9366588Z 58 โ pulseProgress.value = withRepeat(
2026-10-23T22:25:17.9366801Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9367059Z ยท โฐโโ `pulseProgress` cannot be modified
2026-10-23T22:25:17.9367299Z 59 โ withTiming(1, {
2026-10-23T22:25:17.9367458Z โฐโโโโ
2026-10-23T22:25:17.9367822Z 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-23T22:25:17.9368435Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T22:25:17.9368758Z
2026-10-23T22:25:17.9368973Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9369347Z โญโ[apps/mobile/src/components/ComposerContextSheet.tsx:267:25]
2026-10-23T22:25:17.9369649Z 266 โ {record.elements?.map((element, index) => (
2026-10-23T22:25:17.9369977Z 267 โ <View key={`${element.selector ?? element.tagName}:${index}`} className="gap-3">
2026-10-23T22:25:17.9370335Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9370578Z 268 โ <ContextField
2026-10-23T22:25:17.9370748Z โฐโโโโ
2026-10-23T22:25:17.9370970Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9371152Z
2026-10-23T22:25:17.9371538Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9371992Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:79:5]
2026-10-23T22:25:17.9372242Z 76 โ
2026-10-23T22:25:17.9372386Z 77 โ useEffect(() => {
2026-10-23T22:25:17.9372566Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9372801Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9373089Z 78 โ const { host, code } = parsePairingUrl(connectionPairingUrl);
2026-10-23T22:25:17.9373318Z 79 โ setHostInput(host);
2026-10-23T22:25:17.9373500Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9373781Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9374033Z 80 โ setCodeInput(code);
2026-10-23T22:25:17.9374187Z โฐโโโโ
2026-10-23T22:25:17.9374965Z 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-23T22:25:17.9376043Z 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-23T22:25:17.9376382Z
2026-10-23T22:25:17.9376663Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9377111Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:89:5]
2026-10-23T22:25:17.9377356Z 82 โ
2026-10-23T22:25:17.9377496Z 83 โ useEffect(() => {
2026-10-23T22:25:17.9377660Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9377897Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9378151Z 84 โ if (routePairingUrl.length === 0) {
2026-10-23T22:25:17.9378339Z 85 โ return;
2026-10-23T22:25:17.9378481Z 86 โ }
2026-10-23T22:25:17.9378610Z 87 โ
2026-10-23T22:25:17.9378800Z 88 โ const { host, code } = parsePairingUrl(routePairingUrl);
2026-10-23T22:25:17.9379019Z 89 โ setHostInput(host);
2026-10-23T22:25:17.9379202Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9379482Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9379741Z 90 โ setCodeInput(code);
2026-10-23T22:25:17.9379890Z โฐโโโโ
2026-10-23T22:25:17.9380616Z 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-23T22:25:17.9381586Z 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-23T22:25:17.9381924Z
2026-10-23T22:25:17.9382204Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9382655Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:95:7]
2026-10-23T22:25:17.9382900Z 92 โ
2026-10-23T22:25:17.9383036Z 93 โ useEffect(() => {
2026-10-23T22:25:17.9383210Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9383442Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9383682Z 94 โ if (pairingConnectionError) {
2026-10-23T22:25:17.9383880Z 95 โ setIsSubmitting(false);
2026-10-23T22:25:17.9384078Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9384367Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9384612Z 96 โ }
2026-10-23T22:25:17.9384739Z โฐโโโโ
2026-10-23T22:25:17.9385449Z 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-23T22:25:17.9386377Z 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-23T22:25:17.9386712Z
2026-10-23T22:25:17.9387051Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9387497Z โญโ[apps/mobile/src/components/ProjectFavicon.tsx:158:5]
2026-10-23T22:25:17.9387868Z 153 โ const [activeFaviconRequest, setActiveFaviconRequest] = useState<typeof faviconRequest>(null);
2026-10-23T22:25:17.9388156Z 154 โ useLayoutEffect(() => {
2026-10-23T22:25:17.9388348Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9388596Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9388847Z 155 โ if (faviconRequest === null) return;
2026-10-23T22:25:17.9389022Z 156 โ
2026-10-23T22:25:17.9389233Z 157 โ const endRequest = beginProjectFaviconRequest(faviconRequest);
2026-10-23T22:25:17.9389500Z 158 โ setActiveFaviconRequest(faviconRequest);
2026-10-23T22:25:17.9389734Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9390041Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9390362Z 159 โ return endRequest;
2026-10-23T22:25:17.9390520Z โฐโโโโ
2026-10-23T22:25:17.9391235Z 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-23T22:25:17.9392205Z 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-23T22:25:17.9392538Z
2026-10-23T22:25:17.9392824Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9393251Z โญโ[apps/mobile/src/components/VideoPreviewModal.ios.tsx:63:55]
2026-10-23T22:25:17.9393485Z 61 โ }, []);
2026-10-23T22:25:17.9393635Z 62 โ useEffect(() => {
2026-10-23T22:25:17.9393801Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9394037Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9394344Z 63 โ if (playbackUrl === null && resolvedUrl !== null) setPlaybackUrl(resolvedUrl);
2026-10-23T22:25:17.9394656Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9395015Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9395395Z 64 โ }, [playbackUrl, resolvedUrl]);
2026-10-23T22:25:17.9395616Z โฐโโโโ
2026-10-23T22:25:17.9396337Z 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-23T22:25:17.9397266Z 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-23T22:25:17.9397600Z
2026-10-23T22:25:17.9397822Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9398180Z โญโ[apps/mobile/src/components/ComposerEditor.tsx:82:6]
2026-10-23T22:25:17.9398404Z 81 โ },
2026-10-23T22:25:17.9398552Z 82 โ [draftKey],
2026-10-23T22:25:17.9398721Z ยท โโโโโฌโโโ
2026-10-23T22:25:17.9398963Z ยท โฐโโ Unnecessary dependency `draftKey`
2026-10-23T22:25:17.9399184Z 83 โ );
2026-10-23T22:25:17.9399310Z โฐโโโโ
2026-10-23T22:25:17.9399692Z 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-23T22:25:17.9400336Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9400664Z
2026-10-23T22:25:17.9400948Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9401403Z โญโ[apps/mobile/src/features/files/FileTreeBrowser.tsx:155:5]
2026-10-23T22:25:17.9401634Z 150 โ
2026-10-23T22:25:17.9401776Z 151 โ useEffect(() => {
2026-10-23T22:25:17.9401951Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9402184Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9402425Z 152 โ if (!controlledSelectedPath) {
2026-10-23T22:25:17.9402610Z 153 โ return;
2026-10-23T22:25:17.9402759Z 154 โ }
2026-10-23T22:25:17.9402925Z 155 โ setExpandedPaths((current) => {
2026-10-23T22:25:17.9403126Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9403415Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9403733Z 156 โ const ancestors = ancestorPaths(controlledSelectedPath);
2026-10-23T22:25:17.9403955Z โฐโโโโ
2026-10-23T22:25:17.9404667Z 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-23T22:25:17.9405606Z 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-23T22:25:17.9405937Z
2026-10-23T22:25:17.9406214Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9406677Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:335:7]
2026-10-23T22:25:17.9406925Z 330 โ };
2026-10-23T22:25:17.9407145Z 331 โ useEffect(() => {
2026-10-23T22:25:17.9407361Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9407598Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9407855Z 332 โ if (!guidesEnabled && section === "guide") {
2026-10-23T22:25:17.9408097Z 333 โ requestedSection.current = "overview";
2026-10-23T22:25:17.9408405Z 334 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-23T22:25:17.9408677Z 335 โ setSection("overview");
2026-10-23T22:25:17.9408871Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9409156Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9409403Z 336 โ }
2026-10-23T22:25:17.9409531Z โฐโโโโ
2026-10-23T22:25:17.9410250Z 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-23T22:25:17.9411191Z 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-23T22:25:17.9411613Z
2026-10-23T22:25:17.9411841Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-23T22:25:17.9412251Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:337:6]
2026-10-23T22:25:17.9412550Z 332 โ if (!guidesEnabled && section === "guide") {
2026-10-23T22:25:17.9412781Z 333 โ requestedSection.current = "overview";
2026-10-23T22:25:17.9413002Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9413595Z ยท โฐโโ Missing dependency `requestedSection`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-23T22:25:17.9414211Z 334 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-23T22:25:17.9414565Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9415264Z ยท โ โฐโโ Missing dependency `scrollOffsets`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-23T22:25:17.9416222Z ยท โฐโโ Missing dependency `currentScrollOffset`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-23T22:25:17.9416740Z 335 โ setSection("overview");
2026-10-23T22:25:17.9416910Z 336 โ }
2026-10-23T22:25:17.9417089Z 337 โ }, [guidesEnabled, section, insets.top]);
2026-10-23T22:25:17.9417341Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9417678Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T22:25:17.9417976Z 338 โ const tabContent = activityContent;
2026-10-23T22:25:17.9418149Z โฐโโโโ
2026-10-23T22:25:17.9418395Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-23T22:25:17.9418993Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9419363Z
2026-10-23T22:25:17.9419586Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-23T22:25:17.9419996Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:873:6]
2026-10-23T22:25:17.9420247Z 856 โ if (
2026-10-23T22:25:17.9420454Z 857 โ lastSelection.current.path === route.params.path &&
2026-10-23T22:25:17.9420685Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9421276Z ยท โฐโโ Missing dependency `lastSelection`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-23T22:25:17.9421882Z 858 โ lastSelection.current.id === route.params.fileSelectionId
2026-10-23T22:25:17.9422099Z 859 โ )
2026-10-23T22:25:17.9422237Z 860 โ return;
2026-10-23T22:25:17.9422516Z 861 โ lastSelection.current = { path: route.params.path, id: route.params.fileSelectionId };
2026-10-23T22:25:17.9422863Z 862 โ if (route.params.focus) navigation.setParams({ focus: undefined });
2026-10-23T22:25:17.9423127Z 863 โ setJumpPath(route.params.path);
2026-10-23T22:25:17.9423322Z 864 โ setSelectedRowId(null);
2026-10-23T22:25:17.9423514Z 865 โ jumpStarted.current = false;
2026-10-23T22:25:17.9423790Z 866 โ const file = data.files.find((entry) => entry.path === route.params.path);
2026-10-23T22:25:17.9424071Z 867 โ if (!file || !nativeView.current) return;
2026-10-23T22:25:17.9424295Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9424884Z ยท โฐโโ Missing dependency `nativeView`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-23T22:25:17.9425439Z 868 โ setCollapsedIds((ids) => ids.filter((id) => id !== file.id));
2026-10-23T22:25:17.9425680Z 869 โ jumpStarted.current = true;
2026-10-23T22:25:17.9425939Z 870 โ void nativeView.current.scrollToFile(file.id, false).catch(() => {
2026-10-23T22:25:17.9426195Z 871 โ jumpStarted.current = false;
2026-10-23T22:25:17.9426372Z 872 โ });
2026-10-23T22:25:17.9426658Z 873 โ }, [route.params.path, route.params.fileSelectionId, route.params.focus, data.files, navigation]);
2026-10-23T22:25:17.9427101Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9427535Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-23T22:25:17.9427882Z 874 โ const appliedFilter = useRef(filter.hideTestFiles);
2026-10-23T22:25:17.9428083Z โฐโโโโ
2026-10-23T22:25:17.9428334Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-23T22:25:17.9428861Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9429186Z
2026-10-23T22:25:17.9429392Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9429855Z โญโ[apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx:116:34]
2026-10-23T22:25:17.9430631Z 115 โ return [...commands];
2026-10-23T22:25:17.9430877Z 116 โ }, [activeThreadRef, pathname, registrationVersion, navigation]);
2026-10-23T22:25:17.9431166Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9431538Z ยท โฐโโ Unnecessary dependency `registrationVersion`
2026-10-23T22:25:17.9431789Z 117 โ
2026-10-23T22:25:17.9431913Z โฐโโโโ
2026-10-23T22:25:17.9432321Z 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-23T22:25:17.9433096Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9433430Z
2026-10-23T22:25:17.9433646Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9434013Z โญโ[apps/mobile/modules/t3-source-text/src/SourceText.tsx:36:9]
2026-10-23T22:25:17.9434281Z 35 โ <T3SourceTextRunNativeComponent
2026-10-23T22:25:17.9434473Z 36 โ key={index}
2026-10-23T22:25:17.9434655Z ยท โโโโโโโโโโโ
2026-10-23T22:25:17.9434844Z 37 โ style={flattenedStyle}
2026-10-23T22:25:17.9435006Z โฐโโโโ
2026-10-23T22:25:17.9435236Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9435408Z
2026-10-23T22:25:17.9435813Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownOption(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T22:25:17.9436328Z โญโ[packages/shared/src/otelEnvironment.ts:146:14]
2026-10-23T22:25:17.9436542Z 145 โ name,
2026-10-23T22:25:17.9436779Z 146 โ (raw) => Schema.decodeUnknownOption(OtlpProtocol)(raw.toLowerCase()),
2026-10-23T22:25:17.9437061Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9437325Z 147 โ `${name} is not http/protobuf or http/json, ${NOT_EXPORTED}`,
2026-10-23T22:25:17.9437527Z โฐโโโโ
2026-10-23T22:25:17.9437593Z
2026-10-23T22:25:17.9437881Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9438299Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2121:5]
2026-10-23T22:25:17.9438633Z 2119 โ );
2026-10-23T22:25:17.9438842Z 2120 โ useEffect(() => {
2026-10-23T22:25:17.9439141Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9439451Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9439691Z 2121 โ setExpandedVideo(null);
2026-10-23T22:25:17.9439891Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9440188Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9440458Z 2122 โ setExpandedFile(null);
2026-10-23T22:25:17.9440619Z โฐโโโโ
2026-10-23T22:25:17.9441372Z 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-23T22:25:17.9442338Z 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-23T22:25:17.9442672Z
2026-10-23T22:25:17.9442929Z โ eslint(no-unused-vars): Identifier 'isMarkdownFileLinkLabel' is imported but never used.
2026-10-23T22:25:17.9443322Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:62:10]
2026-10-23T22:25:17.9443783Z 61 โ import { resolveAssetUrl } from "@t3tools/client-runtime/state/assets";
2026-10-23T22:25:17.9444264Z 62 โ import { isMarkdownFileLinkLabel } from "@t3tools/shared/markdownLinks";
2026-10-23T22:25:17.9444699Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9445169Z ยท โฐโโ 'isMarkdownFileLinkLabel' is imported here
2026-10-23T22:25:17.9445761Z 63 โ import { formatAttachmentSize } from "@t3tools/client-runtime/state/attachments";
2026-10-23T22:25:17.9446152Z โฐโโโโ
2026-10-23T22:25:17.9446421Z help: Consider removing this import.
2026-10-23T22:25:17.9446625Z
2026-10-23T22:25:17.9446995Z โ eslint(no-unused-vars): Identifier 'createContext' is imported but never used.
2026-10-23T22:25:17.9447567Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:88:3]
2026-10-23T22:25:17.9447909Z 87 โ import {
2026-10-23T22:25:17.9448137Z 88 โ createContext,
2026-10-23T22:25:17.9448397Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9448790Z ยท โฐโโ 'createContext' is imported here
2026-10-23T22:25:17.9449129Z 89 โ memo,
2026-10-23T22:25:17.9449339Z โฐโโโโ
2026-10-23T22:25:17.9449598Z help: Consider removing this import.
2026-10-23T22:25:17.9449792Z
2026-10-23T22:25:17.9450166Z โ eslint(no-unused-vars): Identifier 'ActivityIndicator' is imported but never used.
2026-10-23T22:25:17.9450792Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:104:3]
2026-10-23T22:25:17.9451157Z 103 โ import {
2026-10-23T22:25:17.9452143Z 104 โ ActivityIndicator,
2026-10-23T22:25:17.9452911Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9453243Z ยท โฐโโ 'ActivityIndicator' is imported here
2026-10-23T22:25:17.9453311Z 105 โ Image,
2026-10-23T22:25:17.9453365Z โฐโโโโ
2026-10-23T22:25:17.9453479Z help: Consider removing this import.
2026-10-23T22:25:17.9453494Z
2026-10-23T22:25:17.9453722Z โ eslint(no-unused-vars): Identifier 'ScrollView' is imported but never used.
2026-10-23T22:25:17.9454387Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:111:3]
2026-10-23T22:25:17.9454570Z 110 โ Pressable,
2026-10-23T22:25:17.9454640Z 111 โ ScrollView,
2026-10-23T22:25:17.9454722Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9454867Z ยท โฐโโ 'ScrollView' is imported here
2026-10-23T22:25:17.9454930Z 112 โ StyleSheet,
2026-10-23T22:25:17.9454988Z โฐโโโโ
2026-10-23T22:25:17.9455093Z help: Consider removing this import.
2026-10-23T22:25:17.9455096Z
2026-10-23T22:25:17.9455307Z โ eslint(no-unused-vars): Identifier 'NativeText' is imported but never used.
2026-10-23T22:25:17.9455449Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:113:11]
2026-10-23T22:25:17.9455513Z 112 โ StyleSheet,
2026-10-23T22:25:17.9455589Z 113 โ Text as NativeText,
2026-10-23T22:25:17.9455684Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9455832Z ยท โฐโโ 'NativeText' is imported here
2026-10-23T22:25:17.9455906Z 114 โ type ColorValue,
2026-10-23T22:25:17.9455965Z โฐโโโโ
2026-10-23T22:25:17.9456072Z help: Consider removing this import.
2026-10-23T22:25:17.9456075Z
2026-10-23T22:25:17.9456297Z โ eslint(no-unused-vars): Identifier 'tryOpenExternalUrl' is imported but never used.
2026-10-23T22:25:17.9456440Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:136:10]
2026-10-23T22:25:17.9456585Z 135 โ import { copyTextWithHaptic } from "../../lib/copyTextWithHaptic";
2026-10-23T22:25:17.9456720Z 136 โ import { tryOpenExternalUrl } from "../../lib/openExternalUrl";
2026-10-23T22:25:17.9456813Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9456988Z ยท โฐโโ 'tryOpenExternalUrl' is imported here
2026-10-23T22:25:17.9457146Z 137 โ import { downloadAndShareAttachment } from "../../lib/attachmentDownload";
2026-10-23T22:25:17.9457202Z โฐโโโโ
2026-10-23T22:25:17.9457301Z help: Consider removing this import.
2026-10-23T22:25:17.9457304Z
2026-10-23T22:25:17.9457534Z โ eslint(no-unused-vars): Identifier 'faviconUrlForOrigin' is imported but never used.
2026-10-23T22:25:17.9457674Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:139:10]
2026-10-23T22:25:17.9457820Z 138 โ import { hasWideMarkdownBlock } from "../../lib/wideMarkdownBlocks";
2026-10-23T22:25:17.9457953Z 139 โ import { faviconUrlForOrigin } from "@t3tools/shared/favicon";
2026-10-23T22:25:17.9458052Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9458221Z ยท โฐโโ 'faviconUrlForOrigin' is imported here
2026-10-23T22:25:17.9458287Z 140 โ import {
2026-10-23T22:25:17.9458339Z โฐโโโโ
2026-10-23T22:25:17.9458444Z help: Consider removing this import.
2026-10-23T22:25:17.9458446Z
2026-10-23T22:25:17.9458667Z โ eslint(no-unused-vars): Identifier 'MediaVideoPlayer' is imported but never used.
2026-10-23T22:25:17.9458805Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:153:10]
2026-10-23T22:25:17.9458955Z 152 โ import { VideoAttachmentTile } from "../../components/VideoAttachmentTile";
2026-10-23T22:25:17.9459095Z 153 โ import { MediaVideoPlayer } from "../../components/MediaVideoPlayer";
2026-10-23T22:25:17.9459188Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9459347Z ยท โฐโโ 'MediaVideoPlayer' is imported here
2026-10-23T22:25:17.9459623Z 154 โ import { resolveMarkdownMediaPreview } from "../../lib/markdownMedia";
2026-10-23T22:25:17.9459727Z โฐโโโโ
2026-10-23T22:25:17.9459828Z help: Consider removing this import.
2026-10-23T22:25:17.9459831Z
2026-10-23T22:25:17.9460059Z โ eslint(no-unused-vars): Identifier 'mediaVideoPreviewUri' is imported but never used.
2026-10-23T22:25:17.9460199Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:157:3]
2026-10-23T22:25:17.9460283Z 156 โ attachmentVideoPreviewSource,
2026-10-23T22:25:17.9460362Z 157 โ mediaVideoPreviewUri,
2026-10-23T22:25:17.9460454Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9460615Z ยท โฐโโ 'mediaVideoPreviewUri' is imported here
2026-10-23T22:25:17.9460690Z 158 โ mediaVideoThumbnailKey,
2026-10-23T22:25:17.9460744Z โฐโโโโ
2026-10-23T22:25:17.9460850Z help: Consider removing this import.
2026-10-23T22:25:17.9460855Z
2026-10-23T22:25:17.9461087Z โ eslint(no-unused-vars): Identifier 'mediaVideoThumbnailKey' is imported but never used.
2026-10-23T22:25:17.9461220Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:158:3]
2026-10-23T22:25:17.9461294Z 157 โ mediaVideoPreviewUri,
2026-10-23T22:25:17.9461416Z 158 โ mediaVideoThumbnailKey,
2026-10-23T22:25:17.9461513Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T22:25:17.9461672Z ยท โฐโโ 'mediaVideoThumbnailKey' is imported here
2026-10-23T22:25:17.9461763Z 159 โ type MediaVideoPreviewSource,
2026-10-23T22:25:17.9461821Z โฐโโโโ
2026-10-23T22:25:17.9461921Z help: Consider removing this import.
2026-10-23T22:25:17.9461924Z
2026-10-23T22:25:17.9462144Z โ eslint(no-unused-vars): Type 'MediaVideoPreviewSource' is imported but never used.
2026-10-23T22:25:17.9462285Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:159:8]
2026-10-23T22:25:17.9462361Z 158 โ mediaVideoThumbnailKey,
2026-10-23T22:25:17.9462444Z 159 โ type MediaVideoPreviewSource,
2026-10-23T22:25:17.9462542Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9462710Z ยท โฐโโ 'MediaVideoPreviewSource' is imported here
2026-10-23T22:25:17.9462801Z 160 โ } from "../../lib/videoPreviewSource";
2026-10-23T22:25:17.9462856Z โฐโโโโ
2026-10-23T22:25:17.9462954Z help: Consider removing this import.
2026-10-23T22:25:17.9462957Z
2026-10-23T22:25:17.9463167Z โ eslint(no-unused-vars): Type 'ReviewDiffTheme' is imported but never used.
2026-10-23T22:25:17.9463308Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:167:15]
2026-10-23T22:25:17.9463496Z 166 โ import { parseReviewCommentMessageSegments } from "../review/reviewCommentSelection";
2026-10-23T22:25:17.9463637Z 167 โ import type { ReviewDiffTheme } from "../review/shikiReviewHighlighter";
2026-10-23T22:25:17.9463733Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9463888Z ยท โฐโโ 'ReviewDiffTheme' is imported here
2026-10-23T22:25:17.9463951Z 168 โ import {
2026-10-23T22:25:17.9464003Z โฐโโโโ
2026-10-23T22:25:17.9464107Z help: Consider removing this import.
2026-10-23T22:25:17.9464109Z
2026-10-23T22:25:17.9464346Z โ eslint(no-unused-vars): Identifier 'resolveMarkdownFontSizes' is imported but never used.
2026-10-23T22:25:17.9464594Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:182:3]
2026-10-23T22:25:17.9464707Z 181 โ import {
2026-10-23T22:25:17.9464788Z 182 โ resolveMarkdownFontSizes,
2026-10-23T22:25:17.9464882Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9465048Z ยท โฐโโ 'resolveMarkdownFontSizes' is imported here
2026-10-23T22:25:17.9465139Z 183 โ resolveNativeMarkdownTypography,
2026-10-23T22:25:17.9465201Z โฐโโโโ
2026-10-23T22:25:17.9465301Z help: Consider removing this import.
2026-10-23T22:25:17.9465303Z
2026-10-23T22:25:17.9465533Z โ eslint(no-unused-vars): Identifier 'markdownLinkIconSource' is imported but never used.
2026-10-23T22:25:17.9465670Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:187:10]
2026-10-23T22:25:17.9465812Z 186 โ import { PierreEntryIcon } from "../../components/PierreEntryIcon";
2026-10-23T22:25:17.9465958Z 187 โ import { markdownLinkIconSource } from "../../lib/markdownLinkIcons";
2026-10-23T22:25:17.9466059Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T22:25:17.9466229Z ยท โฐโโ 'markdownLinkIconSource' is imported here
2026-10-23T22:25:17.9466287Z 188 โ import {
2026-10-23T22:25:17.9466341Z โฐโโโโ
2026-10-23T22:25:17.9466441Z help: Consider removing this import.
2026-10-23T22:25:17.9466444Z
2026-10-23T22:25:17.9466713Z โ eslint(no-unused-vars): Identifier 'resolveMarkdownInlineCodePresentation' is imported but never used.
2026-10-23T22:25:17.9466852Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:190:3]
2026-10-23T22:25:17.9466938Z 189 โ normalizeNativeMarkdownUrl,
2026-10-23T22:25:17.9467044Z 190 โ resolveMarkdownInlineCodePresentation,
2026-10-23T22:25:17.9467165Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9467364Z ยท โฐโโ 'resolveMarkdownInlineCodePresentation' is imported here
2026-10-23T22:25:17.9467444Z 191 โ resolveMarkdownLinkIcon,
2026-10-23T22:25:17.9467500Z โฐโโโโ
2026-10-23T22:25:17.9467607Z help: Consider removing this import.
2026-10-23T22:25:17.9467609Z
2026-10-23T22:25:17.9467838Z โ eslint(no-unused-vars): Identifier 'resolveMarkdownLinkIcon' is imported but never used.
2026-10-23T22:25:17.9467978Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:191:3]
2026-10-23T22:25:17.9468081Z 190 โ resolveMarkdownInlineCodePresentation,
2026-10-23T22:25:17.9468163Z 191 โ resolveMarkdownLinkIcon,
2026-10-23T22:25:17.9468365Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9468579Z ยท โฐโโ 'resolveMarkdownLinkIcon' is imported here
2026-10-23T22:25:17.9468672Z 192 โ resolveMarkdownLinkPresentation,
2026-10-23T22:25:17.9468728Z โฐโโโโ
2026-10-23T22:25:17.9468827Z help: Consider removing this import.
2026-10-23T22:25:17.9468830Z
2026-10-23T22:25:17.9469066Z โ eslint(no-unused-vars): Identifier 'useMarkdownCodeHighlight' is imported but never used.
2026-10-23T22:25:17.9469206Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:230:10]
2026-10-23T22:25:17.9469318Z 229 โ import { ThreadMcpApp } from "./McpAppWebView";
2026-10-23T22:25:17.9469467Z 230 โ import { useMarkdownCodeHighlight } from "./markdownCodeHighlightState";
2026-10-23T22:25:17.9469571Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9469754Z ยท โฐโโ 'useMarkdownCodeHighlight' is imported here
2026-10-23T22:25:17.9469822Z 231 โ import {
2026-10-23T22:25:17.9469874Z โฐโโโโ
2026-10-23T22:25:17.9469981Z help: Consider removing this import.
2026-10-23T22:25:17.9469984Z
2026-10-23T22:25:17.9470385Z โ eslint(no-unused-vars): Identifier 'useAssetUrlState' is imported but never used.
2026-10-23T22:25:17.9470525Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:234:3]
2026-10-23T22:25:17.9470596Z 233 โ useAssetUrl,
2026-10-23T22:25:17.9470674Z 234 โ useAssetUrlState,
2026-10-23T22:25:17.9470762Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9470912Z ยท โฐโโ 'useAssetUrlState' is imported here
2026-10-23T22:25:17.9470990Z 235 โ useRefreshAssetUrl,
2026-10-23T22:25:17.9471051Z โฐโโโโ
2026-10-23T22:25:17.9471153Z help: Consider removing this import.
2026-10-23T22:25:17.9471155Z
2026-10-23T22:25:17.9471394Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9471546Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2123:7]
2026-10-23T22:25:17.9471623Z 2122 โ setExpandedFile(null);
2026-10-23T22:25:17.9471791Z 2123 โ }, [props.environmentId, props.threadId, props.contentPresentation.kind]);
2026-10-23T22:25:17.9472020Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโฌโโโโโโ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9472326Z ยท โ โ โฐโโ Unnecessary dependency `props.contentPresentation.kind`
2026-10-23T22:25:17.9472532Z ยท โ โฐโโ Unnecessary dependency `props.threadId`
2026-10-23T22:25:17.9472704Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-23T22:25:17.9472857Z 2124 โ const horizontalPadding = props.layoutVariant === "split" ? 20 : 16;
2026-10-23T22:25:17.9472914Z โฐโโโโ
2026-10-23T22:25:17.9473218Z 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-23T22:25:17.9473570Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9473573Z
2026-10-23T22:25:17.9474046Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9474263Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2590:7]
2026-10-23T22:25:17.9474368Z 2589 โ reportHeaderMaterialVisibility(false);
2026-10-23T22:25:17.9474491Z 2590 โ }, [feedThreadKey, reportHeaderMaterialVisibility]);
2026-10-23T22:25:17.9474580Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9474739Z ยท โฐโโ Unnecessary dependency `feedThreadKey`
2026-10-23T22:25:17.9474798Z 2591 โ
2026-10-23T22:25:17.9474853Z โฐโโโโ
2026-10-23T22:25:17.9475156Z 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-23T22:25:17.9475484Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9475489Z
2026-10-23T22:25:17.9475701Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9475836Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2606:7]
2026-10-23T22:25:17.9475898Z 2605 โ }
2026-10-23T22:25:17.9476040Z 2606 โ }, [listMountKey, props.contentInsetEndAdjustment, listRef]);
2026-10-23T22:25:17.9476127Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9476278Z ยท โฐโโ Unnecessary dependency `listMountKey`
2026-10-23T22:25:17.9476336Z 2607 โ
2026-10-23T22:25:17.9476395Z โฐโโโโ
2026-10-23T22:25:17.9482977Z 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-23T22:25:17.9483457Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9483468Z
2026-10-23T22:25:17.9483691Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9483837Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2763:7]
2026-10-23T22:25:17.9483901Z 2762 โ }
2026-10-23T22:25:17.9484093Z 2763 โ }, [expandedTurnIds, expandedWorkGroups, expandedWorkRows, settleDisclosureAfterLayout]);
2026-10-23T22:25:17.9484304Z ยท โโโโโโโโฌโโโโโโโ โโโโโโโโโโฌโโโโโโโโ โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9484574Z ยท โ โ โฐโโ Unnecessary dependency `expandedWorkRows`
2026-10-23T22:25:17.9484794Z ยท โ โฐโโ Unnecessary dependency `expandedWorkGroups`
2026-10-23T22:25:17.9484953Z ยท โฐโโ Unnecessary dependency `expandedTurnIds`
2026-10-23T22:25:17.9485009Z 2764 โ
2026-10-23T22:25:17.9485066Z โฐโโโโ
2026-10-23T22:25:17.9485369Z 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-23T22:25:17.9485693Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9485695Z
2026-10-23T22:25:17.9486139Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9486413Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:605:9]
2026-10-23T22:25:17.9486494Z 604 โ };
2026-10-23T22:25:17.9486620Z 605 โ }, [props.environmentId, attachment.id, httpBaseUrl]),
2026-10-23T22:25:17.9486823Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ โโโโโโฌโโโโโ
2026-10-23T22:25:17.9487066Z ยท โ โ โฐโโ Unnecessary dependency `httpBaseUrl`
2026-10-23T22:25:17.9487272Z ยท โ โฐโโ Unnecessary dependency `attachment.id`
2026-10-23T22:25:17.9487454Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-23T22:25:17.9487519Z 606 โ );
2026-10-23T22:25:17.9487571Z โฐโโโโ
2026-10-23T22:25:17.9487899Z 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-23T22:25:17.9488219Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9488223Z
2026-10-23T22:25:17.9488461Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-23T22:25:17.9488596Z โญโ[apps/server/src/terminal/Manager.test.ts:731:31]
2026-10-23T22:25:17.9488654Z 730 โ );
2026-10-23T22:25:17.9488838Z 731 โ const snapshot = events.filter((event) => event.type === "snapshot").at(-1)?.snapshot;
2026-10-23T22:25:17.9488945Z ยท โโโโโโ
2026-10-23T22:25:17.9489072Z 732 โ expect(snapshot?.history).toBe("aa๐\rEND");
2026-10-23T22:25:17.9489127Z โฐโโโโ
2026-10-23T22:25:17.9489307Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-23T22:25:17.9489310Z
2026-10-23T22:25:17.9489586Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9489750Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:512:5]
2026-10-23T22:25:17.9489811Z 510 โ }, []);
2026-10-23T22:25:17.9489885Z 511 โ useEffect(() => {
2026-10-23T22:25:17.9489964Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9490108Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9490203Z 512 โ setKeyboardStateSuspect(false);
2026-10-23T22:25:17.9490303Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9490481Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9490590Z 513 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-23T22:25:17.9490642Z โฐโโโโ
2026-10-23T22:25:17.9491261Z 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-23T22:25:17.9491780Z 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-23T22:25:17.9491825Z
2026-10-23T22:25:17.9492091Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9492249Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:872:7]
2026-10-23T22:25:17.9492407Z 869 โ const [lastKnownKeyboardHeight, setLastKnownKeyboardHeight] = useState(0);
2026-10-23T22:25:17.9492508Z 870 โ useEffect(() => {
2026-10-23T22:25:17.9492598Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9492731Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9492894Z 871 โ if (liveKeyboardHeight > 0 && liveKeyboardHeight !== lastKnownKeyboardHeight) {
2026-10-23T22:25:17.9493023Z 872 โ setLastKnownKeyboardHeight(liveKeyboardHeight);
2026-10-23T22:25:17.9493132Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T22:25:17.9493314Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9493371Z 873 โ }
2026-10-23T22:25:17.9493425Z โฐโโโโ
2026-10-23T22:25:17.9494036Z 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-23T22:25:17.9494364Z 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-23T22:25:17.9494366Z
2026-10-23T22:25:17.9494632Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9494793Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1119:5]
2026-10-23T22:25:17.9494853Z 1117 โ
2026-10-23T22:25:17.9494925Z 1118 โ useEffect(() => {
2026-10-23T22:25:17.9495008Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9495142Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9495226Z 1119 โ setAnchorMessageId(null);
2026-10-23T22:25:17.9495316Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9495496Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9495579Z 1120 โ setSubmittedMessageId(null);
2026-10-23T22:25:17.9495636Z โฐโโโโ
2026-10-23T22:25:17.9496363Z 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-23T22:25:17.9496737Z 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-23T22:25:17.9496739Z
2026-10-23T22:25:17.9496949Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9497103Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:513:7]
2026-10-23T22:25:17.9497196Z 512 โ setKeyboardStateSuspect(false);
2026-10-23T22:25:17.9497305Z 513 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-23T22:25:17.9497456Z ยท โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9497666Z ยท โ โฐโโ Unnecessary dependency `liveKeyboardHeight`
2026-10-23T22:25:17.9497830Z ยท โฐโโ Unnecessary dependency `isKeyboardVisible`
2026-10-23T22:25:17.9497964Z 514 โ const handleOwnedInputFocusChange = (focused: boolean) => {
2026-10-23T22:25:17.9498021Z โฐโโโโ
2026-10-23T22:25:17.9498321Z 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-23T22:25:17.9498639Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9498645Z
2026-10-23T22:25:17.9498848Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9499006Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1067:7]
2026-10-23T22:25:17.9499099Z 1066 โ userInputInsetProgress.set(1);
2026-10-23T22:25:17.9499262Z 1067 โ }, [activeUserInputRequestId, userInputCardProgress, userInputInsetProgress]);
2026-10-23T22:25:17.9499363Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9499548Z ยท โฐโโ Unnecessary dependency `activeUserInputRequestId`
2026-10-23T22:25:17.9499660Z 1068 โ const showContent = props.showContent ?? true;
2026-10-23T22:25:17.9499712Z โฐโโโโ
2026-10-23T22:25:17.9500018Z 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-23T22:25:17.9500334Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9500337Z
2026-10-23T22:25:17.9500539Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9500700Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1125:15]
2026-10-23T22:25:17.9500770Z 1124 โ freeze.set(false);
2026-10-23T22:25:17.9500857Z 1125 โ }, [freeze, selectedThreadKey]);
2026-10-23T22:25:17.9500957Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9501407Z ยท โฐโโ Unnecessary dependency `selectedThreadKey`
2026-10-23T22:25:17.9501534Z 1126 โ
2026-10-23T22:25:17.9501589Z โฐโโโโ
2026-10-23T22:25:17.9501888Z 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-23T22:25:17.9502204Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9502206Z
2026-10-23T22:25:17.9502364Z โ react(immutability): This value cannot be modified
2026-10-23T22:25:17.9502521Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:955:5]
2026-10-23T22:25:17.9502638Z 950 โ const composerPopoverHeight = useSharedValue(0);
2026-10-23T22:25:17.9502749Z 951 โ const floatingControlCoverage = useSharedValue(
2026-10-23T22:25:17.9502853Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9503029Z ยท โฐโโ `floatingControlCoverage` originates here
2026-10-23T22:25:17.9503226Z 952 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-23T22:25:17.9503312Z 953 โ );
2026-10-23T22:25:17.9503417Z 954 โ useEffect(() => {
2026-10-23T22:25:17.9503537Z 955 โ floatingControlCoverage.value = withTiming(
2026-10-23T22:25:17.9503634Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9503802Z ยท โฐโโ `floatingControlCoverage` cannot be modified
2026-10-23T22:25:17.9503935Z 956 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-23T22:25:17.9503987Z โฐโโโโ
2026-10-23T22:25:17.9504268Z 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-23T22:25:17.9504587Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T22:25:17.9504590Z
2026-10-23T22:25:17.9504751Z โ react(immutability): This value cannot be modified
2026-10-23T22:25:17.9504904Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:973:7]
2026-10-23T22:25:17.9505098Z 963 โ const userInputCoverageApplies = Platform.OS === "ios" && activeUserInputRequestId !== null;
2026-10-23T22:25:17.9505230Z 964 โ const combinedContentInsetEndAdjustment = useSharedValue(
2026-10-23T22:25:17.9505385Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9505674Z ยท โฐโโ `combinedContentInsetEndAdjustment` originates here
2026-10-23T22:25:17.9505820Z 965 โ Math.max(0, estimatedOverlayHeight - nativeInsetOvercount),
2026-10-23T22:25:17.9505882Z 966 โ );
2026-10-23T22:25:17.9505968Z 967 โ useAnimatedReaction(
2026-10-23T22:25:17.9506032Z 968 โ () =>
2026-10-23T22:25:17.9506135Z 969 โ contentInsetEndAdjustment.value +
2026-10-23T22:25:17.9506227Z 970 โ floatingControlCoverage.value +
2026-10-23T22:25:17.9506430Z 971 โ (userInputCoverageApplies ? userInputInsetProgress.value * userInputCardCoverage.value : 0),
2026-10-23T22:25:17.9506494Z 972 โ (value) => {
2026-10-23T22:25:17.9506615Z 973 โ combinedContentInsetEndAdjustment.value = value;
2026-10-23T22:25:17.9506732Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9507087Z ยท โฐโโ `combinedContentInsetEndAdjustment` cannot be modified
2026-10-23T22:25:17.9507186Z 974 โ },
2026-10-23T22:25:17.9507245Z โฐโโโโ
2026-10-23T22:25:17.9507517Z 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-23T22:25:17.9507834Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T22:25:17.9507837Z
2026-10-23T22:25:17.9508100Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9508277Z โญโ[apps/mobile/src/features/threads/thread-inspector-content-stack.tsx:60:5]
2026-10-23T22:25:17.9508336Z 58 โ
2026-10-23T22:25:17.9508413Z 59 โ useEffect(() => {
2026-10-23T22:25:17.9508498Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9508635Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9508722Z 60 โ setMountedModes((current) => {
2026-10-23T22:25:17.9508808Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9508983Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9509069Z 61 โ if (current.has(props.mode)) {
2026-10-23T22:25:17.9509128Z โฐโโโโ
2026-10-23T22:25:17.9509742Z 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-23T22:25:17.9510082Z 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-23T22:25:17.9510087Z
2026-10-23T22:25:17.9510545Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-23T22:25:17.9510788Z โญโ[apps/mobile/src/features/threads/ThreadQueueControl.tsx:602:27]
2026-10-23T22:25:17.9510971Z 601 โ const onEnd = useEffectEvent((y: number, success: boolean) => props.onEnd(y, success));
2026-10-23T22:25:17.9511057Z 602 โ const gesture = Gesture.Pan()
2026-10-23T22:25:17.9511155Z ยท โโฌโ
2026-10-23T22:25:17.9511302Z ยท โฐโโ `Pan` may be a component
2026-10-23T22:25:17.9511464Z 603 โ .enabled(!props.disabled)
2026-10-23T22:25:17.9511524Z โฐโโโโ
2026-10-23T22:25:17.9511823Z 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-23T22:25:17.9512281Z 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-23T22:25:17.9512285Z
2026-10-23T22:25:17.9512555Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9512714Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:361:7]
2026-10-23T22:25:17.9512859Z 355 โ }, [cancelledIncomingShareId, navigation, props.incomingShareId]);
2026-10-23T22:25:17.9512932Z 356 โ useEffect(() => {
2026-10-23T22:25:17.9513245Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9513461Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9513560Z 357 โ if (!isReturningToProjectPicker) {
2026-10-23T22:25:17.9513624Z 358 โ return;
2026-10-23T22:25:17.9513683Z 359 โ }
2026-10-23T22:25:17.9513790Z 360 โ if (requestedInitialProjectAvailable) {
2026-10-23T22:25:17.9513892Z 361 โ setIsReturningToProjectPicker(false);
2026-10-23T22:25:17.9513999Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9514181Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9514250Z 362 โ return;
2026-10-23T22:25:17.9514308Z โฐโโโโ
2026-10-23T22:25:17.9514926Z 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-23T22:25:17.9515265Z 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-23T22:25:17.9515268Z
2026-10-23T22:25:17.9515532Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9515689Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:504:9]
2026-10-23T22:25:17.9515747Z 447 โ
2026-10-23T22:25:17.9515818Z 448 โ useEffect(() => {
2026-10-23T22:25:17.9515896Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9516035Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9516146Z 449 โ if (props.pendingTaskId || props.draftId) {
2026-10-23T22:25:17.9516209Z 450 โ return;
2026-10-23T22:25:17.9516268Z 451 โ }
2026-10-23T22:25:17.9516418Z 452 โ if (lastInitialProjectRefRef.current !== props.initialProjectRef) {
2026-10-23T22:25:17.9516563Z 453 โ lastInitialProjectRefRef.current = props.initialProjectRef;
2026-10-23T22:25:17.9516673Z 454 โ appliedInitialProjectKeyRef.current = null;
2026-10-23T22:25:17.9516732Z 455 โ }
2026-10-23T22:25:17.9516884Z 456 โ const initialEnvironmentId = props.initialProjectRef?.environmentId;
2026-10-23T22:25:17.9517019Z 457 โ const initialProjectId = props.initialProjectRef?.projectId;
2026-10-23T22:25:17.9517127Z 458 โ if (initialEnvironmentId && initialProjectId) {
2026-10-23T22:25:17.9517286Z 459 โ const directProject =
2026-10-23T22:25:17.9517399Z 460 โ projects.find(
2026-10-23T22:25:17.9517473Z 461 โ (project) =>
2026-10-23T22:25:17.9517651Z 462 โ project.environmentId === initialEnvironmentId && project.id === initialProjectId,
2026-10-23T22:25:17.9517722Z 463 โ ) ?? null;
2026-10-23T22:25:17.9517782Z 464 โ
2026-10-23T22:25:17.9517859Z 465 โ if (directProject) {
2026-10-23T22:25:17.9518001Z 466 โ // Apply the route's project once. Re-applying on every change would
2026-10-23T22:25:17.9518145Z 467 โ // instantly revert environment/project switches made in the picker.
2026-10-23T22:25:17.9518314Z 468 โ const directProjectKey = `${directProject.environmentId}:${directProject.id}`;
2026-10-23T22:25:17.9518460Z 469 โ if (appliedInitialProjectKeyRef.current === directProjectKey) {
2026-10-23T22:25:17.9518529Z 470 โ return;
2026-10-23T22:25:17.9518595Z 471 โ }
2026-10-23T22:25:17.9518700Z 472 โ if (props.initialProjectRef?.branch) {
2026-10-23T22:25:17.9518767Z 473 โ if (
2026-10-23T22:25:17.9518913Z 474 โ selectedProject?.environmentId !== directProject.environmentId ||
2026-10-23T22:25:17.9519023Z 475 โ selectedProject.id !== directProject.id
2026-10-23T22:25:17.9519086Z 476 โ ) {
2026-10-23T22:25:17.9519175Z 477 โ setProject(directProject);
2026-10-23T22:25:17.9519241Z 478 โ return;
2026-10-23T22:25:17.9519306Z 479 โ }
2026-10-23T22:25:17.9519395Z 480 โ if (!flow.draftKey) return;
2026-10-23T22:25:17.9519541Z 481 โ // The route completes checkout before mounting this composer. Local
2026-10-23T22:25:17.9519698Z 482 โ // mode reuses an existing worktree; worktree mode would create another.
2026-10-23T22:25:17.9519822Z 483 โ updateComposerDraftSettings(flow.draftKey, {
2026-10-23T22:25:17.9519908Z 484 โ workspaceSelection: {
2026-10-23T22:25:17.9519980Z 485 โ mode: "local",
2026-10-23T22:25:17.9520093Z 486 โ branch: props.initialProjectRef.branch,
2026-10-23T22:25:17.9520236Z 487 โ worktreePath: props.initialProjectRef.worktreePath ?? null,
2026-10-23T22:25:17.9520322Z 488 โ startFromOrigin: false,
2026-10-23T22:25:17.9520385Z 489 โ },
2026-10-23T22:25:17.9520450Z 490 โ });
2026-10-23T22:25:17.9520511Z 491 โ }
2026-10-23T22:25:17.9520645Z 492 โ appliedInitialProjectKeyRef.current = directProjectKey;
2026-10-23T22:25:17.9520706Z 493 โ if (
2026-10-23T22:25:17.9520854Z 494 โ selectedProject?.environmentId === directProject.environmentId &&
2026-10-23T22:25:17.9520965Z 495 โ selectedProject.id === directProject.id
2026-10-23T22:25:17.9521036Z 496 โ ) {
2026-10-23T22:25:17.9521101Z 497 โ return;
2026-10-23T22:25:17.9521164Z 498 โ }
2026-10-23T22:25:17.9521253Z 499 โ setProject(directProject);
2026-10-23T22:25:17.9521319Z 500 โ return;
2026-10-23T22:25:17.9521411Z 501 โ }
2026-10-23T22:25:17.9521475Z 502 โ
2026-10-23T22:25:17.9521567Z 503 โ if (projects.length > 0) {
2026-10-23T22:25:17.9521670Z 504 โ setIsReturningToProjectPicker(true);
2026-10-23T22:25:17.9521783Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9521976Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9522035Z 505 โ }
2026-10-23T22:25:17.9522094Z โฐโโโโ
2026-10-23T22:25:17.9522787Z 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-23T22:25:17.9523170Z 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-23T22:25:17.9523173Z
2026-10-23T22:25:17.9523439Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9523599Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:604:5]
2026-10-23T22:25:17.9523659Z 545 โ
2026-10-23T22:25:17.9523730Z 546 โ useEffect(() => {
2026-10-23T22:25:17.9523811Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9523946Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9524042Z 547 โ const shareId = props.incomingShareId;
2026-10-23T22:25:17.9524133Z 548 โ const draftKey = flow.draftKey;
2026-10-23T22:25:17.9524245Z 549 โ const destinationProject = selectedProject;
2026-10-23T22:25:17.9524395Z 550 โ const initialEnvironmentId = props.initialProjectRef?.environmentId;
2026-10-23T22:25:17.9524531Z 551 โ const initialProjectId = props.initialProjectRef?.projectId;
2026-10-23T22:25:17.9524630Z 552 โ const selectedProjectMatchesRoute =
2026-10-23T22:25:17.9524713Z 553 โ !initialEnvironmentId ||
2026-10-23T22:25:17.9524788Z 554 โ !initialProjectId ||
2026-10-23T22:25:17.9524922Z 555 โ (destinationProject?.environmentId === initialEnvironmentId &&
2026-10-23T22:25:17.9525041Z 556 โ destinationProject.id === initialProjectId);
2026-10-23T22:25:17.9525106Z 557 โ if (
2026-10-23T22:25:17.9525174Z 558 โ !shareId ||
2026-10-23T22:25:17.9525241Z 559 โ !draftKey ||
2026-10-23T22:25:17.9525324Z 560 โ !destinationProject ||
2026-10-23T22:25:17.9525420Z 561 โ !selectedProjectMatchesRoute ||
2026-10-23T22:25:17.9525518Z 562 โ cancelledIncomingShareId === shareId
2026-10-23T22:25:17.9525575Z 563 โ ) {
2026-10-23T22:25:17.9525640Z 564 โ return;
2026-10-23T22:25:17.9525701Z 565 โ }
2026-10-23T22:25:17.9525804Z 566 โ const importKey = `${shareId}:${draftKey}`;
2026-10-23T22:25:17.9525862Z 567 โ if (
2026-10-23T22:25:17.9525981Z 568 โ startedShareImportKeyRef.current === importKey ||
2026-10-23T22:25:17.9526150Z 569 โ cancellingShareImportKeyRef.current === importKey
2026-10-23T22:25:17.9526271Z 570 โ ) {
2026-10-23T22:25:17.9526367Z 571 โ return;
2026-10-23T22:25:17.9526457Z 572 โ }
2026-10-23T22:25:17.9526515Z 573 โ
2026-10-23T22:25:17.9526587Z 574 โ if (!incomingShare) {
2026-10-23T22:25:17.9526802Z 575 โ if (isIncomingShareUnavailable && alertedUnavailableIncomingShareIdRef.current !== shareId) {
2026-10-23T22:25:17.9526942Z 576 โ alertedUnavailableIncomingShareIdRef.current = shareId;
2026-10-23T22:25:17.9527014Z 577 โ Dialog.alert(
2026-10-23T22:25:17.9527103Z 578 โ "Shared content unavailable",
2026-10-23T22:25:17.9527287Z 579 โ "The shared content is no longer in the inbox. You can continue editing this task draft.",
2026-10-23T22:25:17.9527351Z 580 โ );
2026-10-23T22:25:17.9527428Z 581 โ }
2026-10-23T22:25:17.9527490Z 582 โ return;
2026-10-23T22:25:17.9527654Z 583 โ }
2026-10-23T22:25:17.9527777Z 584 โ
2026-10-23T22:25:17.9527844Z 585 โ if (
2026-10-23T22:25:17.9528015Z 586 โ incomingShare.attachments.some((attachment) => attachment.type === "file") &&
2026-10-23T22:25:17.9528124Z 587 โ selectedEnvironmentServerConfig === null
2026-10-23T22:25:17.9528183Z 588 โ ) {
2026-10-23T22:25:17.9528248Z 589 โ return;
2026-10-23T22:25:17.9528303Z 590 โ }
2026-10-23T22:25:17.9528360Z 591 โ
2026-10-23T22:25:17.9528504Z 592 โ if (alertedUnavailableIncomingShareIdRef.current === shareId) {
2026-10-23T22:25:17.9528633Z 593 โ alertedUnavailableIncomingShareIdRef.current = null;
2026-10-23T22:25:17.9528688Z 594 โ }
2026-10-23T22:25:17.9528802Z 595 โ startedShareImportKeyRef.current = importKey;
2026-10-23T22:25:17.9528880Z 596 โ const draftBackup =
2026-10-23T22:25:17.9529077Z 597 โ shareImportDraftBackupRef.current.get(importKey) ?? getComposerDraftSnapshot(draftKey);
2026-10-23T22:25:17.9529225Z 598 โ shareImportDraftBackupRef.current.set(importKey, draftBackup);
2026-10-23T22:25:17.9529322Z 599 โ const importToken = Symbol(importKey);
2026-10-23T22:25:17.9529409Z 600 โ let didReserveShare = false;
2026-10-23T22:25:17.9529490Z 601 โ let didConsumeShare = false;
2026-10-23T22:25:17.9529580Z 602 โ let needsDraftRestore = false;
2026-10-23T22:25:17.9529698Z 603 โ activeShareImportTokenRef.current = importToken;
2026-10-23T22:25:17.9529787Z 604 โ setImportingShareKey(importKey);
2026-10-23T22:25:17.9529886Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9530072Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9530148Z 605 โ void (async () => {
2026-10-23T22:25:17.9530206Z โฐโโโโ
2026-10-23T22:25:17.9530827Z 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-23T22:25:17.9531161Z 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-23T22:25:17.9531165Z
2026-10-23T22:25:17.9531426Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9531604Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:524:5]
2026-10-23T22:25:17.9531688Z 523 โ props.initialProjectRef,
2026-10-23T22:25:17.9531767Z 524 โ props.incomingShareId,
2026-10-23T22:25:17.9531867Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T22:25:17.9532046Z ยท โฐโโ Unnecessary dependency `props.incomingShareId`
2026-10-23T22:25:17.9532121Z 525 โ props.pendingTaskId,
2026-10-23T22:25:17.9532173Z โฐโโโโ
2026-10-23T22:25:17.9532478Z 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-23T22:25:17.9532800Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9532802Z
2026-10-23T22:25:17.9533030Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T22:25:17.9533276Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:543:5]
2026-10-23T22:25:17.9533453Z 542 โ loadedBranchesProjectKeyRef.current = projectKey;
2026-10-23T22:25:17.9533525Z 543 โ flow.loadBranches();
2026-10-23T22:25:17.9533602Z ยท โโโฌโ
2026-10-23T22:25:17.9533735Z ยท โฐโโ Missing dependency `flow`
2026-10-23T22:25:17.9533831Z 544 โ }, [flow.loadBranches, selectedProject]);
2026-10-23T22:25:17.9533924Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9534130Z ยท โฐโโ Overly precise dependency `flow.loadBranches`, use `flow` instead
2026-10-23T22:25:17.9534188Z 545 โ
2026-10-23T22:25:17.9534242Z โฐโโโโ
2026-10-23T22:25:17.9534683Z 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-23T22:25:17.9535007Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9535009Z
2026-10-23T22:25:17.9535216Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9535377Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:766:5]
2026-10-23T22:25:17.9535444Z 765 โ flow.draftKey,
2026-10-23T22:25:17.9535529Z 766 โ hasImportedIncomingShare,
2026-10-23T22:25:17.9535627Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9535807Z ยท โฐโโ Unnecessary dependency `hasImportedIncomingShare`
2026-10-23T22:25:17.9535880Z 767 โ incomingShare,
2026-10-23T22:25:17.9535974Z 768 โ isIncomingShareInboxLoading,
2026-10-23T22:25:17.9536078Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
2026-10-23T22:25:17.9536267Z ยท โฐโโ Unnecessary dependency `isIncomingShareInboxLoading`
2026-10-23T22:25:17.9536350Z 769 โ isIncomingShareUnavailable,
2026-10-23T22:25:17.9536429Z 770 โ props.incomingShareId,
2026-10-23T22:25:17.9536529Z 771 โ props.initialProjectRef?.environmentId,
2026-10-23T22:25:17.9536621Z 772 โ props.initialProjectRef?.projectId,
2026-10-23T22:25:17.9536707Z 773 โ releaseShareReservation,
2026-10-23T22:25:17.9536778Z 774 โ reserveShare,
2026-10-23T22:25:17.9536869Z 775 โ selectedEnvironmentServerConfig,
2026-10-23T22:25:17.9536938Z 776 โ selectedProject,
2026-10-23T22:25:17.9537022Z 777 โ shareImportAttempt,
2026-10-23T22:25:17.9537115Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9537284Z ยท โฐโโ Unnecessary dependency `shareImportAttempt`
2026-10-23T22:25:17.9537339Z 778 โ ]);
2026-10-23T22:25:17.9537397Z โฐโโโโ
2026-10-23T22:25:17.9537696Z 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-23T22:25:17.9538014Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9538017Z
2026-10-23T22:25:17.9538237Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-23T22:25:17.9538461Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:772:7]
2026-10-23T22:25:17.9538613Z 771 โ if (settingsSheetPresentation.isActive) {
2026-10-23T22:25:17.9538751Z 772 โ settingsRoutePresentation.present(settingsRouteSession);
2026-10-23T22:25:17.9538852Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-23T22:25:17.9539028Z ยท โฐโโ Missing dependency `settingsRoutePresentation`
2026-10-23T22:25:17.9539087Z 773 โ }
2026-10-23T22:25:17.9539297Z 774 โ }, [settingsRoutePresentation.present, settingsRouteSession, settingsSheetPresentation.isActive]);
2026-10-23T22:25:17.9539413Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9539698Z ยท โฐโโ Overly precise dependency `settingsRoutePresentation.present`, use `settingsRoutePresentation` instead
2026-10-23T22:25:17.9539761Z 775 โ
2026-10-23T22:25:17.9539822Z โฐโโโโ
2026-10-23T22:25:17.9540252Z 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-23T22:25:17.9540567Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9540573Z
2026-10-23T22:25:17.9540733Z โ react(immutability): This value cannot be modified
2026-10-23T22:25:17.9540883Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:390:5]
2026-10-23T22:25:17.9541048Z 386 โ typeof props.style.borderRadius === "number" ? props.style.borderRadius : 0;
2026-10-23T22:25:17.9541196Z 387 โ const animatedBorderRadius = useSharedValue(targetBorderRadius);
2026-10-23T22:25:17.9541291Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9541526Z ยท โฐโโ `animatedBorderRadius` originates here
2026-10-23T22:25:17.9541691Z 388 โ const shouldAnimate = props.animateLayout !== false && Platform.OS !== "android";
2026-10-23T22:25:17.9541766Z 389 โ useLayoutEffect(() => {
2026-10-23T22:25:17.9541873Z 390 โ animatedBorderRadius.value = shouldAnimate
2026-10-23T22:25:17.9541966Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9542130Z ยท โฐโโ `animatedBorderRadius` cannot be modified
2026-10-23T22:25:17.9542226Z 391 โ ? withTiming(targetBorderRadius, {
2026-10-23T22:25:17.9542277Z โฐโโโโ
2026-10-23T22:25:17.9542636Z 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-23T22:25:17.9542995Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-23T22:25:17.9542998Z
2026-10-23T22:25:17.9543266Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9543434Z โญโ[apps/mobile/src/features/threads/new-task-flow-provider.tsx:444:5]
2026-10-23T22:25:17.9543497Z 434 โ : null;
2026-10-23T22:25:17.9543572Z 435 โ useEffect(() => {
2026-10-23T22:25:17.9543649Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9543781Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9543844Z 436 โ if (
2026-10-23T22:25:17.9543933Z 437 โ props.active === false ||
2026-10-23T22:25:17.9544019Z 438 โ activeDraftKey !== null ||
2026-10-23T22:25:17.9544104Z 439 โ editingPendingTask !== null ||
2026-10-23T22:25:17.9544189Z 440 โ selectedProject === null
2026-10-23T22:25:17.9544250Z 441 โ ) {
2026-10-23T22:25:17.9544319Z 442 โ return;
2026-10-23T22:25:17.9544374Z 443 โ }
2026-10-23T22:25:17.9544449Z 444 โ setActiveDraftKey(
2026-10-23T22:25:17.9544537Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9544712Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9544786Z 445 โ createNewTaskDraft({
2026-10-23T22:25:17.9544842Z โฐโโโโ
2026-10-23T22:25:17.9545465Z 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-23T22:25:17.9545801Z 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-23T22:25:17.9545803Z
2026-10-23T22:25:17.9546059Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9546228Z โญโ[apps/mobile/src/features/threads/new-task-flow-provider.tsx:1244:36]
2026-10-23T22:25:17.9546343Z 1243 โ <ActiveNewTaskContext value={activeNewTask}>
2026-10-23T22:25:17.9546557Z 1244 โ <NewTaskFlowContext.Provider value={value}>{props.children}</NewTaskFlowContext.Provider>
2026-10-23T22:25:17.9546681Z ยท โโโโโโโโโโโโโ
2026-10-23T22:25:17.9546760Z 1245 โ </ActiveNewTaskContext>
2026-10-23T22:25:17.9546817Z โฐโโโโ
2026-10-23T22:25:17.9547052Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9547201Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9547203Z
2026-10-23T22:25:17.9547395Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-23T22:25:17.9547519Z โญโ[apps/mobile/src/lib/useHoverGesture.ts:8:15]
2026-10-23T22:25:17.9547581Z 7 โ () =>
2026-10-23T22:25:17.9547652Z 8 โ Gesture.Hover()
2026-10-23T22:25:17.9547731Z ยท โโโฌโโ
2026-10-23T22:25:17.9547944Z ยท โฐโโ `Hover` may be a component
2026-10-23T22:25:17.9548065Z 9 โ .manualActivation(true)
2026-10-23T22:25:17.9548120Z โฐโโโโ
2026-10-23T22:25:17.9548410Z help: Render `Hover` with JSX if it is a component; otherwise rename it to start with a lowercase letter or allowlist it in the compiler configuration
2026-10-23T22:25:17.9548879Z note: `Hover` is treated as a component because it begins with an uppercase letter; React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-23T22:25:17.9548882Z
2026-10-23T22:25:17.9549036Z โ react(refs): Cannot access refs during render
2026-10-23T22:25:17.9549163Z โญโ[apps/mobile/src/components/ui/Menu.tsx:54:36]
2026-10-23T22:25:17.9549356Z 53 โ const child = children as ReactElement<Pick<PressableProps, "onTouchStart" | "onPress">>;
2026-10-23T22:25:17.9549538Z 54 โ โญโโถ children = cloneElement(child, {
2026-10-23T22:25:17.9549651Z 55 โ โ onTouchStart: (event) => {
2026-10-23T22:25:17.9549823Z 56 โ โ // Reset for a new touch, not onPressIn, which also fires when a
2026-10-23T22:25:17.9549993Z 57 โ โ // finger moves out of the row and back during the same gesture.
2026-10-23T22:25:17.9550384Z 58 โ โ menuPress.current.isPreparing = false;
2026-10-23T22:25:17.9550647Z 59 โ โ menuPress.current.suppressPress = menuPress.current.isOpen;
2026-10-23T22:25:17.9550775Z 60 โ โ pendingPress.current = null;
2026-10-23T22:25:17.9550916Z 61 โ โ child.props.onTouchStart?.(event);
2026-10-23T22:25:17.9550999Z 62 โ โ },
2026-10-23T22:25:17.9551107Z 63 โ โ onPress: (event) => {
2026-10-23T22:25:17.9551290Z 64 โ โ // Accessibility clicks have no touch identifier and must not inherit
2026-10-23T22:25:17.9551479Z 65 โ โ // cancellation from a previous physical gesture.
2026-10-23T22:25:17.9551662Z 66 โ โ const isTouch = typeof event.nativeEvent.identifier === "number";
2026-10-23T22:25:17.9551856Z 67 โ โ if (isTouch ? menuPress.current.suppressPress : menuPress.current.isOpen) {
2026-10-23T22:25:17.9551948Z 68 โ โ return;
2026-10-23T22:25:17.9552033Z 69 โ โ }
2026-10-23T22:25:17.9552187Z 70 โ โ if (isTouch && menuPress.current.isPreparing) {
2026-10-23T22:25:17.9552368Z 71 โ โ // A release can arrive between native menu preparation and display.
2026-10-23T22:25:17.9552540Z 72 โ โ // Let UIKit's display/cancel callback decide this press's outcome.
2026-10-23T22:25:17.9552646Z 73 โ โ event.persist();
2026-10-23T22:25:17.9552810Z 74 โ โ pendingPress.current = () => child.props.onPress?.(event);
2026-10-23T22:25:17.9552897Z 75 โ โ return;
2026-10-23T22:25:17.9552980Z 76 โ โ }
2026-10-23T22:25:17.9553106Z 77 โ โ child.props.onPress?.(event);
2026-10-23T22:25:17.9553188Z 78 โ โ },
2026-10-23T22:25:17.9553545Z 79 โ โโโถ });
2026-10-23T22:25:17.9553863Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-23T22:25:17.9553974Z 80 โ menuProps.onMenuInteractionStart = () => {
2026-10-23T22:25:17.9554032Z โฐโโโโ
2026-10-23T22:25:17.9554518Z 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-23T22:25:17.9554823Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T22:25:17.9554828Z
2026-10-23T22:25:17.9555044Z โ eslint(no-unused-vars): Identifier 'Duration' is imported but never used.
2026-10-23T22:25:17.9555193Z โญโ[packages/provider-pi/src/server/adapter.test.ts:24:13]
2026-10-23T22:25:17.9555294Z 23 โ import * as Deferred from "effect/Deferred";
2026-10-23T22:25:17.9555389Z 24 โ import * as Duration from "effect/Duration";
2026-10-23T22:25:17.9555473Z ยท โโโโโฌโโโ
2026-10-23T22:25:17.9555615Z ยท โฐโโ 'Duration' is imported here
2026-10-23T22:25:17.9555709Z 25 โ import * as Effect from "effect/Effect";
2026-10-23T22:25:17.9555761Z โฐโโโโ
2026-10-23T22:25:17.9555868Z help: Consider removing this import.
2026-10-23T22:25:17.9555870Z
2026-10-23T22:25:17.9556122Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9556296Z โญโ[apps/mobile/src/features/threads/ThreadSettingsSheet.tsx:290:50]
2026-10-23T22:25:17.9556363Z 289 โ return (
2026-10-23T22:25:17.9556506Z 290 โ <ExistingThreadSettingsRouteContext.Provider value={value}>
2026-10-23T22:25:17.9556641Z ยท โโโโโโโโโโโโโ
2026-10-23T22:25:17.9556716Z 291 โ {props.children}
2026-10-23T22:25:17.9556768Z โฐโโโโ
2026-10-23T22:25:17.9557003Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9557151Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9557155Z
2026-10-23T22:25:17.9557400Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9557570Z โญโ[apps/mobile/src/features/threads/ThreadSettingsSheet.tsx:654:44]
2026-10-23T22:25:17.9557634Z 653 โ return (
2026-10-23T22:25:17.9557759Z 654 โ <ThreadSettingsSessionContext.Provider value={value}>
2026-10-23T22:25:17.9557880Z ยท โโโโโโโโโโโโโ
2026-10-23T22:25:17.9557955Z 655 โ {props.children}
2026-10-23T22:25:17.9558007Z โฐโโโโ
2026-10-23T22:25:17.9558237Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9558381Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9558383Z
2026-10-23T22:25:17.9558629Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-23T22:25:17.9558883Z โญโ[apps/mobile/src/features/threads/ThreadSettingsSheet.tsx:1462:55]
2026-10-23T22:25:17.9558996Z 1461 โ return (
2026-10-23T22:25:17.9559165Z 1462 โ <ThreadSettingsPickerPresentationContext.Provider value={presentation}>
2026-10-23T22:25:17.9559303Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9559406Z 1463 โ <ThreadSettingsPickerStack.Navigator
2026-10-23T22:25:17.9559463Z โฐโโโโ
2026-10-23T22:25:17.9559691Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-23T22:25:17.9559835Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-23T22:25:17.9559838Z
2026-10-23T22:25:17.9560009Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-23T22:25:17.9560144Z โญโ[apps/server/src/processRunner.test.ts:266:14]
2026-10-23T22:25:17.9560205Z 265 โ
2026-10-23T22:25:17.9560318Z 266 โ for (const {} of ["timeout", "success"] as const) {
2026-10-23T22:25:17.9560393Z ยท โโ
2026-10-23T22:25:17.9560452Z 267 โ }
2026-10-23T22:25:17.9560508Z โฐโโโโ
2026-10-23T22:25:17.9560745Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-23T22:25:17.9560748Z
2026-10-23T22:25:17.9560960Z โ eslint(no-unused-vars): Identifier 'HookForwarder' is imported but never used.
2026-10-23T22:25:17.9561072Z โญโ[infra/relay/src/http/Api.ts:69:13]
2026-10-23T22:25:17.9561225Z 68 โ import * as EnvironmentLinks from "../environments/EnvironmentLinks.ts";
2026-10-23T22:25:17.9561379Z 69 โ import * as HookForwarder from "../hooks/HookForwarder.ts";
2026-10-23T22:25:17.9561479Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9561627Z ยท โฐโโ 'HookForwarder' is imported here
2026-10-23T22:25:17.9561737Z 70 โ import * as HeldHooks from "../hooks/HeldHooks.ts";
2026-10-23T22:25:17.9561795Z โฐโโโโ
2026-10-23T22:25:17.9561897Z help: Consider removing this import.
2026-10-23T22:25:17.9561902Z
2026-10-23T22:25:17.9562092Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9562239Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:121:27]
2026-10-23T22:25:17.9562413Z 120 โ const scope = makeScope(options.capabilities ?? new Set(["preview", "worktree"]));
2026-10-23T22:25:17.9562508Z 121 โ const dispatch = vi.fn((_: unknown) =>
2026-10-23T22:25:17.9562601Z ยท โฌ
2026-10-23T22:25:17.9562744Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9562855Z 122 โ (options.dispatchGate ?? Effect.void).pipe(
2026-10-23T22:25:17.9562910Z โฐโโโโ
2026-10-23T22:25:17.9563017Z help: Consider removing this parameter.
2026-10-23T22:25:17.9563020Z
2026-10-23T22:25:17.9563213Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9563355Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:134:39]
2026-10-23T22:25:17.9563414Z 133 โ );
2026-10-23T22:25:17.9563525Z 134 โ const listLocalBranchNames = vi.fn((_: string) =>
2026-10-23T22:25:17.9563628Z ยท โฌ
2026-10-23T22:25:17.9563857Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9563977Z 135 โ Effect.succeed(
2026-10-23T22:25:17.9564030Z โฐโโโโ
2026-10-23T22:25:17.9564138Z help: Consider removing this parameter.
2026-10-23T22:25:17.9564140Z
2026-10-23T22:25:17.9564327Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9564467Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:178:31]
2026-10-23T22:25:17.9564523Z 177 โ });
2026-10-23T22:25:17.9564628Z 178 โ const sendToThread = vi.fn((_: unknown) => {
2026-10-23T22:25:17.9564723Z ยท โฌ
2026-10-23T22:25:17.9564865Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9564975Z 179 โ switch (options.continuation ?? "queued") {
2026-10-23T22:25:17.9565035Z โฐโโโโ
2026-10-23T22:25:17.9565142Z help: Consider removing this parameter.
2026-10-23T22:25:17.9565144Z
2026-10-23T22:25:17.9565334Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9565473Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:203:33]
2026-10-23T22:25:17.9565531Z 202 โ );
2026-10-23T22:25:17.9565639Z 203 โ const removeWorktree = vi.fn((_: unknown) =>
2026-10-23T22:25:17.9565737Z ยท โฌ
2026-10-23T22:25:17.9565877Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9565965Z 204 โ options.removeWorktreeFails
2026-10-23T22:25:17.9566022Z โฐโโโโ
2026-10-23T22:25:17.9566194Z help: Consider removing this parameter.
2026-10-23T22:25:17.9566210Z
2026-10-23T22:25:17.9566456Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9566603Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:208:36]
2026-10-23T22:25:17.9566663Z 207 โ );
2026-10-23T22:25:17.9566772Z 208 โ const deleteLocalBranch = vi.fn((_: unknown) =>
2026-10-23T22:25:17.9566873Z ยท โฌ
2026-10-23T22:25:17.9567022Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9567114Z 209 โ options.deleteLocalBranchFails
2026-10-23T22:25:17.9567173Z โฐโโโโ
2026-10-23T22:25:17.9567276Z help: Consider removing this parameter.
2026-10-23T22:25:17.9567279Z
2026-10-23T22:25:17.9567473Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9567616Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:213:42]
2026-10-23T22:25:17.9567678Z 212 โ );
2026-10-23T22:25:17.9567793Z 213 โ const fetchWorktreeBaseCommit = vi.fn((_: unknown) =>
2026-10-23T22:25:17.9567901Z ยท โฌ
2026-10-23T22:25:17.9568049Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9568141Z 214 โ options.fetchWorktreeBaseFails
2026-10-23T22:25:17.9568193Z โฐโโโโ
2026-10-23T22:25:17.9568301Z help: Consider removing this parameter.
2026-10-23T22:25:17.9568303Z
2026-10-23T22:25:17.9568492Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9568731Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:254:30]
2026-10-23T22:25:17.9568858Z 253 โ );
2026-10-23T22:25:17.9568951Z 254 โ const localStatus = vi.fn((_: unknown) =>
2026-10-23T22:25:17.9569049Z ยท โฌ
2026-10-23T22:25:17.9569191Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9569269Z 255 โ Effect.succeed({
2026-10-23T22:25:17.9569323Z โฐโโโโ
2026-10-23T22:25:17.9569429Z help: Consider removing this parameter.
2026-10-23T22:25:17.9569432Z
2026-10-23T22:25:17.9569624Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9569764Z โญโ[apps/server/src/mcp/WorktreeMcpService.test.ts:264:32]
2026-10-23T22:25:17.9569822Z 263 โ );
2026-10-23T22:25:17.9569986Z 264 โ const refreshStatus = vi.fn((_: string) => Effect.die("refreshStatus stub"));
2026-10-23T22:25:17.9570086Z ยท โฌ
2026-10-23T22:25:17.9570231Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9570381Z 265 โ const runForThread = vi.fn((input: { readonly worktreePath: string }) => {
2026-10-23T22:25:17.9570437Z โฐโโโโ
2026-10-23T22:25:17.9570544Z help: Consider removing this parameter.
2026-10-23T22:25:17.9570546Z
2026-10-23T22:25:17.9570820Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9570956Z โญโ[packages/provider-pi/src/server/adapter.ts:3405:7]
2026-10-23T22:25:17.9571016Z 3404 โ
2026-10-23T22:25:17.9571218Z 3405 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, PiAdapterV2DriverEnv> =
2026-10-23T22:25:17.9571300Z ยท โโโฌโโ
2026-10-23T22:25:17.9571472Z ยท โฐโโ 'layer' is declared here
2026-10-23T22:25:17.9571549Z 3406 โ Layer.effect(
2026-10-23T22:25:17.9571607Z โฐโโโโ
2026-10-23T22:25:17.9571719Z help: Consider removing this declaration.
2026-10-23T22:25:17.9571721Z
2026-10-23T22:25:17.9571893Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9572060Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:697:76]
2026-10-23T22:25:17.9572247Z 696 โ const [snoozeGateClock, setSnoozeGateClock] = useState(() => ({ thread, now: Date.now() }));
2026-10-23T22:25:17.9572423Z 697 โ if (snoozeGateClock.thread !== thread) setSnoozeGateClock({ thread, now: Date.now() });
2026-10-23T22:25:17.9572567Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9572759Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9572901Z 698 โ const snoozeGateNow = new Date(snoozeGateClock.now).toISOString();
2026-10-23T22:25:17.9572956Z โฐโโโโ
2026-10-23T22:25:17.9573252Z help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9573562Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9573565Z
2026-10-23T22:25:17.9573738Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9574000Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:718:71]
2026-10-23T22:25:17.9574129Z 717 โ const snoozePresets = useMemo(
2026-10-23T22:25:17.9574312Z 718 โ () => (swipeActions.secondary === "snooze" ? resolveSnoozePresets(new Date()) : ([] as const)),
2026-10-23T22:25:17.9574450Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9574638Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9574763Z 719 โ [props.snoozePresetMinute, swipeActions.secondary],
2026-10-23T22:25:17.9574816Z โฐโโโโ
2026-10-23T22:25:17.9575106Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9575416Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9575421Z
2026-10-23T22:25:17.9575610Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9575775Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:719:6]
2026-10-23T22:25:17.9575954Z 718 โ () => (swipeActions.secondary === "snooze" ? resolveSnoozePresets(new Date()) : ([] as const)),
2026-10-23T22:25:17.9576074Z 719 โ [props.snoozePresetMinute, swipeActions.secondary],
2026-10-23T22:25:17.9576174Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-23T22:25:17.9576357Z ยท โฐโโ Unnecessary dependency `props.snoozePresetMinute`
2026-10-23T22:25:17.9576412Z 720 โ );
2026-10-23T22:25:17.9576477Z โฐโโโโ
2026-10-23T22:25:17.9576808Z 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-23T22:25:17.9577130Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9577132Z
2026-10-23T22:25:17.9577326Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-23T22:25:17.9577485Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:765:7]
2026-10-23T22:25:17.9577562Z 764 โ thread.pinnedAt,
2026-10-23T22:25:17.9577631Z 765 โ variant,
2026-10-23T22:25:17.9577710Z ยท โโโโฌโโโ
2026-10-23T22:25:17.9577924Z ยท โฐโโ Unnecessary dependency `variant`
2026-10-23T22:25:17.9578028Z 766 โ ],
2026-10-23T22:25:17.9578084Z โฐโโโโ
2026-10-23T22:25:17.9578408Z 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-23T22:25:17.9578726Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9578728Z
2026-10-23T22:25:17.9578931Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9579099Z โญโ[apps/mobile/src/features/threads/thread-list-v2-items.tsx:1215:21]
2026-10-23T22:25:17.9579242Z 1214 โ {providerDrivers.slice(0, -1).map((driver, index) => (
2026-10-23T22:25:17.9579386Z 1215 โ <View key={`${driver}:${index}`} className="-mr-1 opacity-30">
2026-10-23T22:25:17.9579511Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9579628Z 1216 โ <ProviderIcon provider={driver} size={12} />
2026-10-23T22:25:17.9579684Z โฐโโโโ
2026-10-23T22:25:17.9579835Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9579841Z
2026-10-23T22:25:17.9579993Z โ react(refs): Cannot access refs during render
2026-10-23T22:25:17.9580151Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:152:27]
2026-10-23T22:25:17.9580342Z 151 โ <View ref={anchorRef} collapsable={false} className={props.className} style={props.style}>
2026-10-23T22:25:17.9580428Z 152 โ {props.children(open)}
2026-10-23T22:25:17.9580527Z ยท โโโฌโ
2026-10-23T22:25:17.9580697Z ยท โฐโโ Cannot access ref value during render
2026-10-23T22:25:17.9580766Z 153 โ </View>
2026-10-23T22:25:17.9580823Z โฐโโโโ
2026-10-23T22:25:17.9581307Z 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-23T22:25:17.9581660Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T22:25:17.9581663Z
2026-10-23T22:25:17.9581867Z โ react(memo-dependencies): Found missing/extra memoization dependencies
2026-10-23T22:25:17.9582028Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:140:9]
2026-10-23T22:25:17.9582116Z 139 โ if (action.id !== undefined) {
2026-10-23T22:25:17.9582202Z 140 โ props.onPressAction?.({
2026-10-23T22:25:17.9582283Z ยท โโโฌโโ
2026-10-23T22:25:17.9582421Z ยท โฐโโ Missing dependency `props`
2026-10-23T22:25:17.9582518Z 141 โ nativeEvent: { event: action.id },
2026-10-23T22:25:17.9582671Z 142 โ } as Parameters<NonNullable<MenuComponentProps["onPressAction"]>>[0]);
2026-10-23T22:25:17.9582738Z 143 โ }
2026-10-23T22:25:17.9582799Z 144 โ },
2026-10-23T22:25:17.9582882Z 145 โ [close, props.onPressAction],
2026-10-23T22:25:17.9582985Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9583439Z ยท โฐโโ Overly precise dependency `props.onPressAction`, use `props` instead
2026-10-23T22:25:17.9583578Z 146 โ );
2026-10-23T22:25:17.9583633Z โฐโโโโ
2026-10-23T22:25:17.9584130Z 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-23T22:25:17.9584458Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9584460Z
2026-10-23T22:25:17.9584612Z โ react(refs): Cannot access refs during render
2026-10-23T22:25:17.9584739Z โญโ[apps/mobile/src/native/StackHeader.tsx:185:9]
2026-10-23T22:25:17.9584812Z 184 โ "options",
2026-10-23T22:25:17.9584918Z 185 โ latestOptionFunctionsRef.current,
2026-10-23T22:25:17.9585034Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9585238Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T22:25:17.9585338Z 186 โ optionFunctionWrappersRef.current,
2026-10-23T22:25:17.9585395Z โฐโโโโ
2026-10-23T22:25:17.9585878Z 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-23T22:25:17.9586187Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T22:25:17.9586192Z
2026-10-23T22:25:17.9586343Z โ react(refs): Cannot access refs during render
2026-10-23T22:25:17.9586464Z โญโ[apps/mobile/src/native/StackHeader.tsx:186:9]
2026-10-23T22:25:17.9586564Z 185 โ latestOptionFunctionsRef.current,
2026-10-23T22:25:17.9586665Z 186 โ optionFunctionWrappersRef.current,
2026-10-23T22:25:17.9586782Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9586979Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-23T22:25:17.9587079Z 187 โ ) as NativeStackNavigationOptions)
2026-10-23T22:25:17.9587135Z โฐโโโโ
2026-10-23T22:25:17.9587628Z 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-23T22:25:17.9587929Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-23T22:25:17.9587936Z
2026-10-23T22:25:17.9588238Z โ eslint(no-unused-vars): Variable 'revokeActiveMcpThread' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9588372Z โญโ[apps/server/src/mcp/McpSessionRegistry.ts:218:7]
2026-10-23T22:25:17.9588429Z 217 โ
2026-10-23T22:25:17.9588586Z 218 โ const revokeActiveMcpThread = (threadId: ThreadId): Effect.Effect<void> =>
2026-10-23T22:25:17.9588678Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-23T22:25:17.9588917Z ยท โฐโโ 'revokeActiveMcpThread' is declared here
2026-10-23T22:25:17.9589164Z 219 โ activeMcpSessionRegistry ? activeMcpSessionRegistry.revokeThread(threadId) : Effect.void;
2026-10-23T22:25:17.9589224Z โฐโโโโ
2026-10-23T22:25:17.9589332Z help: Consider removing this declaration.
2026-10-23T22:25:17.9589335Z
2026-10-23T22:25:17.9589657Z โ eslint(no-unused-vars): Variable 'revokeAllActiveMcpCredentials' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9589790Z โญโ[apps/server/src/mcp/McpSessionRegistry.ts:221:7]
2026-10-23T22:25:17.9589848Z 220 โ
2026-10-23T22:25:17.9589984Z 221 โ const revokeAllActiveMcpCredentials = (): Effect.Effect<void> =>
2026-10-23T22:25:17.9590101Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9590620Z ยท โฐโโ 'revokeAllActiveMcpCredentials' is declared here
2026-10-23T22:25:17.9590806Z 222 โ activeMcpSessionRegistry ? activeMcpSessionRegistry.revokeAll : Effect.void;
2026-10-23T22:25:17.9590860Z โฐโโโโ
2026-10-23T22:25:17.9590975Z help: Consider removing this declaration.
2026-10-23T22:25:17.9590979Z
2026-10-23T22:25:17.9591151Z โ eslint(no-new): Do not use 'new' for side effects.
2026-10-23T22:25:17.9591287Z โญโ[apps/server/src/mcp/McpToolAccess.test.ts:168:3]
2026-10-23T22:25:17.9591448Z 167 โ // @ts-expect-error a declaration constructed directly
2026-10-23T22:25:17.9591555Z 168 โ new McpToolAccess.Declaration(unchecked);
2026-10-23T22:25:17.9591662Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9591802Z 169 โ // @ts-expect-error a handlers layer built outside McpToolAccess
2026-10-23T22:25:17.9591858Z โฐโโโโ
2026-10-23T22:25:17.9592034Z help: Assign the result of 'new' to a variable or compare it to a reference.
2026-10-23T22:25:17.9592040Z
2026-10-23T22:25:17.9592358Z โ eslint(no-unused-vars): Variable 'claudeCaps' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9592549Z โญโ[packages/shared/src/model.test.ts:36:7]
2026-10-23T22:25:17.9592633Z 35 โ
2026-10-23T22:25:17.9592835Z 36 โ const claudeCaps: ModelCapabilities = createModelCapabilities({
2026-10-23T22:25:17.9592955Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9593160Z ยท โฐโโ 'claudeCaps' is declared here
2026-10-23T22:25:17.9593239Z 37 โ optionDescriptors: [
2026-10-23T22:25:17.9593293Z โฐโโโโ
2026-10-23T22:25:17.9593409Z help: Consider removing this declaration.
2026-10-23T22:25:17.9593426Z
2026-10-23T22:25:17.9593686Z โ unicorn(prefer-string-starts-ends-with): Prefer String#startsWith over a regex with a caret.
2026-10-23T22:25:17.9593823Z โญโ[apps/server/src/vcs/GitVcsDriverCore.ts:509:11]
2026-10-23T22:25:17.9593928Z 508 โ GIT_DIAGNOSTIC_LINE_PATTERN.test(line) ||
2026-10-23T22:25:17.9594078Z 509 โ (!/^remote:/.test(line) && SSH_TRANSPORT_REFUSAL_PATTERN.test(line)),
2026-10-23T22:25:17.9594175Z ยท โโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9594236Z 510 โ )
2026-10-23T22:25:17.9594290Z โฐโโโโ
2026-10-23T22:25:17.9594456Z help: Replace `/^remote:/.test(line)` with `line.startsWith('remote:')`.
2026-10-23T22:25:17.9594458Z
2026-10-23T22:25:17.9595142Z โ 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-23T22:25:17.9595339Z โญโ[packages/shared/src/atomicWrite.test.ts:139:5]
2026-10-23T22:25:17.9595420Z 138 โ Effect.gen(function* () {
2026-10-23T22:25:17.9595630Z 139 โ โญโโถ while (fiber.pollUnsafe() === undefined) {
2026-10-23T22:25:17.9595766Z 140 โ โ yield* TestClock.adjust("100 millis");
2026-10-23T22:25:17.9596109Z 141 โ โ // oxlint-disable-next-line t3code/no-real-time-wait-in-tests -- a macrotask boundary so the real stat I/O can finish; time moves only via TestClock
2026-10-23T22:25:17.9596311Z 142 โ โ yield* Effect.promise(() => new Promise((resolve) => setImmediate(resolve)));
2026-10-23T22:25:17.9596459Z 143 โ โฐโโถ }
2026-10-23T22:25:17.9596557Z 144 โ return yield* Fiber.join(fiber);
2026-10-23T22:25:17.9596616Z โฐโโโโ
2026-10-23T22:25:17.9596619Z
2026-10-23T22:25:17.9596997Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeEffect(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-23T22:25:17.9597141Z โญโ[apps/server/src/vcs/GitVcsDriverCore.test.ts:1786:34]
2026-10-23T22:25:17.9597286Z 1785 โ const stat = branch.files!.find((file) => file.path === path)!;
2026-10-23T22:25:17.9597443Z 1786 โ const request = yield* Schema.decodeEffect(ReviewDiffPreviewInput)({
2026-10-23T22:25:17.9597567Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9597635Z 1787 โ cwd,
2026-10-23T22:25:17.9597701Z โฐโโโโ
2026-10-23T22:25:17.9597706Z
2026-10-23T22:25:17.9597905Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-23T22:25:17.9598020Z โญโ[packages/shared/src/qrCode.ts:458:44]
2026-10-23T22:25:17.9598090Z 457 โ ): Array<byte> {
2026-10-23T22:25:17.9598207Z 458 โ let result: Array<byte> = divisor.map((_) => 0);
2026-10-23T22:25:17.9598317Z ยท โฌ
2026-10-23T22:25:17.9598472Z ยท โฐโโ '_' is declared here
2026-10-23T22:25:17.9598547Z 459 โ for (const b of data) {
2026-10-23T22:25:17.9598604Z โฐโโโโ
2026-10-23T22:25:17.9598715Z help: Consider removing this parameter.
2026-10-23T22:25:17.9598718Z
2026-10-23T22:25:17.9599014Z โ eslint(no-unused-vars): Function 'describeSchedule' is declared but never used.
2026-10-23T22:25:17.9599194Z โญโ[apps/server/src/scheduledTasks/Schedule.ts:79:10]
2026-10-23T22:25:17.9599251Z 78 โ
2026-10-23T22:25:17.9599396Z 79 โ function describeSchedule(schedule: ScheduledTaskSchedule): string {
2026-10-23T22:25:17.9599492Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9599647Z ยท โฐโโ 'describeSchedule' is declared here
2026-10-23T22:25:17.9599763Z 80 โ if (schedule.type === "webhook") return "On webhook";
2026-10-23T22:25:17.9599820Z โฐโโโโ
2026-10-23T22:25:17.9599933Z help: Consider removing this declaration.
2026-10-23T22:25:17.9599936Z
2026-10-23T22:25:17.9600238Z โ eslint(no-unused-vars): Variable 'legacyCredentials' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9600406Z โญโ[packages/provider-cursor/src/server/credentialStore.test.ts:15:7]
2026-10-23T22:25:17.9600465Z 14 โ
2026-10-23T22:25:17.9600546Z 15 โ const legacyCredentials = {
2026-10-23T22:25:17.9600638Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9600791Z ยท โฐโโ 'legacyCredentials' is declared here
2026-10-23T22:25:17.9600866Z 16 โ version: 1 as const,
2026-10-23T22:25:17.9600926Z โฐโโโโ
2026-10-23T22:25:17.9601038Z help: Consider removing this declaration.
2026-10-23T22:25:17.9601040Z
2026-10-23T22:25:17.9601263Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-23T22:25:17.9601461Z โญโ[apps/web/src/lib/composerContextReferences.ts:90:40]
2026-10-23T22:25:17.9601549Z 89 โ let cursor = prompt.length;
2026-10-23T22:25:17.9601667Z 90 โ for (const occurrence of occurrences.reverse()) {
2026-10-23T22:25:17.9601775Z ยท โโโโโโโ
2026-10-23T22:25:17.9601863Z 91 โ let { start, end } = occurrence;
2026-10-23T22:25:17.9601921Z โฐโโโโ
2026-10-23T22:25:17.9602202Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-23T22:25:17.9602204Z
2026-10-23T22:25:17.9602401Z โ oxc(no-accumulating-spread): Do not spread accumulators in loops
2026-10-23T22:25:17.9602538Z โญโ[packages/client-runtime/src/state/shell.ts:189:5]
2026-10-23T22:25:17.9602658Z 186 โ let waiting = yield* Ref.get(awaitingCompletion);
2026-10-23T22:25:17.9602735Z 187 โ let next = initial;
2026-10-23T22:25:17.9602817Z ยท โโโฌโ
2026-10-23T22:25:17.9602952Z ยท โฐโโ From this accumulator
2026-10-23T22:25:17.9603040Z 188 โ let receivedSnapshot = false;
2026-10-23T22:25:17.9603125Z 189 โ for (const item of items) {
2026-10-23T22:25:17.9603197Z ยท โโฌโ
2026-10-23T22:25:17.9603312Z ยท โฐโโ For this loop
2026-10-23T22:25:17.9603409Z 190 โ if (item.kind === "synchronized") {
2026-10-23T22:25:17.9603485Z 191 โ waiting = false;
2026-10-23T22:25:17.9603582Z 192 โ if (Option.isSome(next.snapshot)) {
2026-10-23T22:25:17.9603714Z 193 โ next = { ...next, status: "live", error: Option.none() };
2026-10-23T22:25:17.9603813Z ยท โโโโฌโโโ
2026-10-23T22:25:17.9604033Z ยท โฐโโ From this spread
2026-10-23T22:25:17.9604156Z 194 โ }
2026-10-23T22:25:17.9604213Z โฐโโโโ
2026-10-23T22:25:17.9604381Z help: Consider using `Object.assign()` to mutate the accumulator instead.
2026-10-23T22:25:17.9604551Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-23T22:25:17.9604554Z
2026-10-23T22:25:17.9605049Z โ 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-23T22:25:17.9605244Z โญโ[apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts:521:13]
2026-10-23T22:25:17.9605325Z 520 โ })).delivery;
2026-10-23T22:25:17.9605537Z 521 โ โญโโถ while (delivery.outcome === "accepted") {
2026-10-23T22:25:17.9605663Z 522 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9605816Z 523 โ โ delivery = (yield* service.getWebhookDelivery({
2026-10-23T22:25:17.9605926Z 524 โ โ id: task.id,
2026-10-23T22:25:17.9606060Z 525 โ โ deliveryId: deliveryId!,
2026-10-23T22:25:17.9606228Z 526 โ โ })).delivery;
2026-10-23T22:25:17.9606378Z 527 โ โฐโโถ }
2026-10-23T22:25:17.9606504Z 528 โ assert.equal(delivery.outcome, "dispatch_failed");
2026-10-23T22:25:17.9606566Z โฐโโโโ
2026-10-23T22:25:17.9606568Z
2026-10-23T22:25:17.9606793Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-23T22:25:17.9606933Z โญโ[packages/client-runtime/src/state/filesystem.ts:3:8]
2026-10-23T22:25:17.9607016Z 2 โ AuthFilesystemReadScope,
2026-10-23T22:25:17.9607093Z 3 โ type AuthSessionState,
2026-10-23T22:25:17.9607186Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9607340Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-23T22:25:17.9607422Z 4 โ type FilesystemBrowseEntry,
2026-10-23T22:25:17.9607479Z โฐโโโโ
2026-10-23T22:25:17.9607587Z help: Consider removing this import.
2026-10-23T22:25:17.9607589Z
2026-10-23T22:25:17.9607881Z โ eslint(no-unused-vars): Parameter 'stopSessions' is declared but never used. Unused parameters should start with a '_'.
2026-10-23T22:25:17.9608027Z โญโ[packages/provider-cursor/src/server/auth.ts:249:20]
2026-10-23T22:25:17.9608096Z 248 โ },
2026-10-23T22:25:17.9608187Z 249 โ (effect, flow, stopSessions) =>
2026-10-23T22:25:17.9608284Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9608445Z ยท โฐโโ 'stopSessions' is declared here
2026-10-23T22:25:17.9608518Z 250 โ effect.pipe(
2026-10-23T22:25:17.9608574Z โฐโโโโ
2026-10-23T22:25:17.9608683Z help: Consider removing this parameter.
2026-10-23T22:25:17.9608686Z
2026-10-23T22:25:17.9608907Z โ unicorn(require-module-specifiers): Empty import specifier is not allowed
2026-10-23T22:25:17.9609086Z โญโ[apps/server/src/sourceControl/SourceControlProviderRegistry.ts:15:13]
2026-10-23T22:25:17.9609167Z 14 โ } from "@t3tools/contracts";
2026-10-23T22:25:17.9609347Z 15 โ import type {} from "@t3tools/contracts";
2026-10-23T22:25:17.9609480Z ยท โโ
2026-10-23T22:25:17.9609672Z 16 โ import { detectSourceControlProviderFromRemoteUrl } from "@t3tools/shared/sourceControl";
2026-10-23T22:25:17.9609730Z โฐโโโโ
2026-10-23T22:25:17.9609817Z help: Remove empty braces
2026-10-23T22:25:17.9609820Z
2026-10-23T22:25:17.9610014Z โ unicorn(no-new-array): Do not use `new Array(singleArgument)`.
2026-10-23T22:25:17.9610150Z โญโ[apps/web/src/terminal/ghostty/core.ts:194:19]
2026-10-23T22:25:17.9610286Z 193 โ const count = Math.min(CHUNK_SIZE, graphemeLength - start);
2026-10-23T22:25:17.9610382Z 194 โ const codes = new Array<number>(count);
2026-10-23T22:25:17.9610505Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9610626Z 195 โ for (let index = 0; index < count; index += 1) {
2026-10-23T22:25:17.9610687Z โฐโโโโ
2026-10-23T22:25:17.9611130Z help: It's not clear whether the argument is meant to be the length of the array or the only element. If the argument is the array's length, consider using `Array.from({ length: n })`. If the argument is the only element, use `[element]`.
2026-10-23T22:25:17.9611135Z
2026-10-23T22:25:17.9611394Z โ eslint(no-unused-vars): Function 'nonEmptyString' is declared but never used.
2026-10-23T22:25:17.9611568Z โญโ[packages/client-runtime/src/work-log/presentation.ts:234:10]
2026-10-23T22:25:17.9611626Z 233 โ
2026-10-23T22:25:17.9611752Z 234 โ function nonEmptyString(value: unknown): string | null {
2026-10-23T22:25:17.9611842Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9612005Z ยท โฐโโ 'nonEmptyString' is declared here
2026-10-23T22:25:17.9612161Z 235 โ return typeof value === "string" && value.trim().length > 0 ? value : null;
2026-10-23T22:25:17.9612218Z โฐโโโโ
2026-10-23T22:25:17.9612328Z help: Consider removing this declaration.
2026-10-23T22:25:17.9612330Z
2026-10-23T22:25:17.9612571Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-23T22:25:17.9612709Z โญโ[apps/mobile/src/lib/markdownDocument.ts:138:28]
2026-10-23T22:25:17.9612802Z 137 โ visit(parser.parse(markdown));
2026-10-23T22:25:17.9612894Z 138 โ for (const edit of edits.reverse())
2026-10-23T22:25:17.9613005Z ยท โโโโโโโ
2026-10-23T22:25:17.9613185Z 139 โ markdown = markdown.slice(0, edit.start) + edit.content + markdown.slice(edit.end);
2026-10-23T22:25:17.9613246Z โฐโโโโ
2026-10-23T22:25:17.9613527Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-23T22:25:17.9613532Z
2026-10-23T22:25:17.9613759Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-23T22:25:17.9613893Z โญโ[apps/mobile/src/lib/markdownDocument.ts:169:28]
2026-10-23T22:25:17.9613984Z 168 โ visit(parser.parse(markdown));
2026-10-23T22:25:17.9614074Z 169 โ for (const edit of edits.reverse())
2026-10-23T22:25:17.9614178Z ยท โโโโโโโ
2026-10-23T22:25:17.9614352Z 170 โ markdown = markdown.slice(0, edit.start) + edit.content + markdown.slice(edit.end);
2026-10-23T22:25:17.9614411Z โฐโโโโ
2026-10-23T22:25:17.9614757Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-23T22:25:17.9614803Z
2026-10-23T22:25:17.9615022Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-23T22:25:17.9615155Z โญโ[apps/mobile/src/lib/markdownDocument.ts:223:38]
2026-10-23T22:25:17.9615246Z 222 โ visit(parser.parse(markdown));
2026-10-23T22:25:17.9615360Z 223 โ for (const lineStart of lineStarts.reverse()) {
2026-10-23T22:25:17.9615469Z ยท โโโโโโโ
2026-10-23T22:25:17.9615647Z 224 โ // The header row may be a lazy line without its container markers (`>` or list indent),
2026-10-23T22:25:17.9615707Z โฐโโโโ
2026-10-23T22:25:17.9615980Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-23T22:25:17.9615988Z
2026-10-23T22:25:17.9616202Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-23T22:25:17.9616347Z โญโ[packages/client-runtime/src/state/usageAccess.ts:3:8]
2026-10-23T22:25:17.9616436Z 2 โ AuthDiagnosticsReadScope,
2026-10-23T22:25:17.9616520Z 3 โ type AuthSessionState,
2026-10-23T22:25:17.9616611Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9616772Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-23T22:25:17.9616855Z 4 โ sessionGrantsScope,
2026-10-23T22:25:17.9616917Z โฐโโโโ
2026-10-23T22:25:17.9617024Z help: Consider removing this import.
2026-10-23T22:25:17.9617026Z
2026-10-23T22:25:17.9617209Z โ eslint(no-empty-pattern): Empty array binding pattern
2026-10-23T22:25:17.9617388Z โญโ[apps/server/src/pullRequest/PullRequestService.test.ts:1429:12]
2026-10-23T22:25:17.9617452Z 1428 โ
2026-10-23T22:25:17.9617525Z 1429 โ for (const [] of [
2026-10-23T22:25:17.9617612Z ยท โโ
2026-10-23T22:25:17.9617692Z 1430 โ ["github", "github.com"],
2026-10-23T22:25:17.9617754Z โฐโโโโ
2026-10-23T22:25:17.9618049Z help: Passing non-iterable values (null, undefined, numbers, booleans, etc.) will result in a runtime error because these values are not iterable.
2026-10-23T22:25:17.9618052Z
2026-10-23T22:25:17.9618235Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9618367Z โญโ[apps/web/src/hooks/useThreadActions.ts:821:56]
2026-10-23T22:25:17.9618483Z 820 โ const resolved = resolveThreadTarget(target);
2026-10-23T22:25:17.9618655Z 821 โ if (resolved && !canSnooze(resolved.thread, { now: new Date().toISOString() })) {
2026-10-23T22:25:17.9618792Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9618981Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9619074Z 822 โ return AsyncResult.failure(
2026-10-23T22:25:17.9619129Z โฐโโโโ
2026-10-23T22:25:17.9619428Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9619750Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9619752Z
2026-10-23T22:25:17.9620017Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9620191Z โญโ[apps/web/src/hooks/useThreadActions.ts:709:46]
2026-10-23T22:25:17.9620266Z 708 โ const wokeAt = resolved
2026-10-23T22:25:17.9620419Z 709 โ ? threadWokeAt(resolved.thread, { now: new Date().toISOString() })
2026-10-23T22:25:17.9620542Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9620718Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9620784Z 710 โ : null;
2026-10-23T22:25:17.9620841Z โฐโโโโ
2026-10-23T22:25:17.9621143Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9621501Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9621507Z
2026-10-23T22:25:17.9622001Z โ 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-23T22:25:17.9622167Z โญโ[packages/client-runtime/src/connection/supervisor.test.ts:135:3]
2026-10-23T22:25:17.9622293Z 134 โ let lastState = yield* SubscriptionRef.get(state);
2026-10-23T22:25:17.9622521Z 135 โ โญโโถ for (let iteration = 0; iteration < 100; iteration += 1) {
2026-10-23T22:25:17.9622677Z 136 โ โ lastState = yield* SubscriptionRef.get(state);
2026-10-23T22:25:17.9622799Z 137 โ โ if (predicate(lastState)) {
2026-10-23T22:25:17.9622910Z 138 โ โ return lastState;
2026-10-23T22:25:17.9622994Z 139 โ โ }
2026-10-23T22:25:17.9623107Z 140 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9623242Z 141 โ โฐโโถ }
2026-10-23T22:25:17.9623328Z 142 โ return yield* Effect.die(
2026-10-23T22:25:17.9623388Z โฐโโโโ
2026-10-23T22:25:17.9623390Z
2026-10-23T22:25:17.9623617Z โ typescript(no-extraneous-class): Unexpected class with only a constructor.
2026-10-23T22:25:17.9623748Z โญโ[apps/desktop/src/preview/Manager.test.ts:158:18]
2026-10-23T22:25:17.9623864Z 157 โ BrowserWindow: browserWindowConstructor,
2026-10-23T22:25:17.9624043Z 158 โ โญโโถ ClipboardItem: class {
2026-10-23T22:25:17.9624184Z 159 โ โ constructor(data: Record<string, unknown>) {
2026-10-23T22:25:17.9624311Z 160 โ โ clipboardItemConstructor(data);
2026-10-23T22:25:17.9624391Z 161 โ โ }
2026-10-23T22:25:17.9624532Z 162 โ โฐโโถ },
2026-10-23T22:25:17.9624610Z 163 โ clipboard: {
2026-10-23T22:25:17.9624666Z โฐโโโโ
2026-10-23T22:25:17.9624854Z help: Try replacing this class with a standalone function or deleting it entirely
2026-10-23T22:25:17.9624857Z
2026-10-23T22:25:17.9625446Z โ 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-23T22:25:17.9625644Z โญโ[packages/client-runtime/src/rpc/session.test.ts:226:3]
2026-10-23T22:25:17.9625710Z 225 โ ) {
2026-10-23T22:25:17.9625921Z 226 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T22:25:17.9626051Z 227 โ โ const socket = sockets[index];
2026-10-23T22:25:17.9626150Z 228 โ โ if (socket) {
2026-10-23T22:25:17.9626256Z 229 โ โ return socket;
2026-10-23T22:25:17.9626334Z 230 โ โ }
2026-10-23T22:25:17.9626444Z 231 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9626584Z 232 โ โฐโโถ }
2026-10-23T22:25:17.9626780Z 233 โ return yield* Effect.die(new Error("Expected the RPC protocol to create a websocket."));
2026-10-23T22:25:17.9626842Z โฐโโโโ
2026-10-23T22:25:17.9626844Z
2026-10-23T22:25:17.9627338Z โ 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-23T22:25:17.9627487Z โญโ[packages/client-runtime/src/rpc/session.test.ts:240:3]
2026-10-23T22:25:17.9627550Z 239 โ ) {
2026-10-23T22:25:17.9627827Z 240 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T22:25:17.9628159Z 241 โ โ const request = socket.sent.map((message) => decodeJson(message)).filter(isRpcRequest)[index];
2026-10-23T22:25:17.9628312Z 242 โ โ if (request) {
2026-10-23T22:25:17.9628469Z 243 โ โ return request;
2026-10-23T22:25:17.9628587Z 244 โ โ }
2026-10-23T22:25:17.9628745Z 245 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9628959Z 246 โ โฐโโถ }
2026-10-23T22:25:17.9629248Z 247 โ return yield* Effect.die(new Error("Expected the RPC protocol to send a request."));
2026-10-23T22:25:17.9629340Z โฐโโโโ
2026-10-23T22:25:17.9629343Z
2026-10-23T22:25:17.9630042Z โ 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-23T22:25:17.9630628Z โญโ[packages/client-runtime/src/rpc/client.test.ts:131:9]
2026-10-23T22:25:17.9630782Z 130 โ ) {
2026-10-23T22:25:17.9631014Z 131 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T22:25:17.9631154Z 132 โ โ if (subscriptions.length >= count) {
2026-10-23T22:25:17.9631253Z 133 โ โ return;
2026-10-23T22:25:17.9631380Z 134 โ โ }
2026-10-23T22:25:17.9631504Z 135 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9631658Z 136 โ โฐโโถ }
2026-10-23T22:25:17.9631835Z 137 โ return yield* Effect.die(new Error(`Expected ${count} durable subscriptions.`));
2026-10-23T22:25:17.9631901Z โฐโโโโ
2026-10-23T22:25:17.9631904Z
2026-10-23T22:25:17.9632401Z โ 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-23T22:25:17.9632552Z โญโ[packages/client-runtime/src/rpc/client.test.ts:252:7]
2026-10-23T22:25:17.9632723Z 251 โ yield* SubscriptionRef.set(activeSession, Option.some(session(firstClient)));
2026-10-23T22:25:17.9632995Z 252 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 1; attempt += 1) {
2026-10-23T22:25:17.9633112Z 253 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9633256Z 254 โ โฐโโถ }
2026-10-23T22:25:17.9633393Z 255 โ yield* SubscriptionRef.set(activeSession, Option.none());
2026-10-23T22:25:17.9633458Z โฐโโโโ
2026-10-23T22:25:17.9633460Z
2026-10-23T22:25:17.9633949Z โ 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-23T22:25:17.9634095Z โญโ[packages/client-runtime/src/rpc/client.test.ts:258:7]
2026-10-23T22:25:17.9634160Z 257 โ
2026-10-23T22:25:17.9634422Z 258 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-23T22:25:17.9634540Z 259 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9634685Z 260 โ โฐโโถ }
2026-10-23T22:25:17.9634815Z 261 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-23T22:25:17.9634872Z โฐโโโโ
2026-10-23T22:25:17.9634874Z
2026-10-23T22:25:17.9635362Z โ 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-23T22:25:17.9635505Z โญโ[packages/client-runtime/src/rpc/client.test.ts:322:7]
2026-10-23T22:25:17.9635574Z 321 โ );
2026-10-23T22:25:17.9635847Z 322 โ โญโโถ for (let attempt = 0; attempt < 100 && observedFailures.length < 1; attempt += 1) {
2026-10-23T22:25:17.9635955Z 323 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9636178Z 324 โ โฐโโถ }
2026-10-23T22:25:17.9636279Z 325 โ
2026-10-23T22:25:17.9636338Z โฐโโโโ
2026-10-23T22:25:17.9636341Z
2026-10-23T22:25:17.9636821Z โ 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-23T22:25:17.9636963Z โญโ[packages/client-runtime/src/rpc/client.test.ts:330:7]
2026-10-23T22:25:17.9637142Z 329 โ yield* SubscriptionRef.set(activeSession, Option.some(session(secondClient)));
2026-10-23T22:25:17.9637409Z 330 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-23T22:25:17.9637525Z 331 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9637665Z 332 โ โฐโโถ }
2026-10-23T22:25:17.9637788Z 333 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-23T22:25:17.9637847Z โฐโโโโ
2026-10-23T22:25:17.9637850Z
2026-10-23T22:25:17.9638141Z โ unicorn(prefer-add-event-listener): Prefer `addEventListener()` over their `on`-function counterparts.
2026-10-23T22:25:17.9638296Z โญโ[apps/web/src/components/device/deviceHubApi.test.ts:12:14]
2026-10-23T22:25:17.9638472Z 11 โ addEventListener(_type: string, listener: (event: { data: string }) => void) {
2026-10-23T22:25:17.9638563Z 12 โ this.onmessage = listener;
2026-10-23T22:25:17.9638664Z ยท โโโโโโโโโ
2026-10-23T22:25:17.9638724Z 13 โ }
2026-10-23T22:25:17.9638785Z โฐโโโโ
2026-10-23T22:25:17.9639140Z help: `addEventListener()` can register multiple handlers and accepts options such as `{ once: true }`; assigning to `on<event>` replaces any previously registered handler.
2026-10-23T22:25:17.9639146Z
2026-10-23T22:25:17.9639373Z โ typescript(no-this-alias): Unexpected aliasing of 'this' to local variable.
2026-10-23T22:25:17.9639524Z โญโ[apps/web/src/components/device/deviceHubApi.test.ts:16:9]
2026-10-23T22:25:17.9639604Z 15 โ constructor() {
2026-10-23T22:25:17.9639683Z 16 โ source = this;
2026-10-23T22:25:17.9639767Z ยท โโโโโโ
2026-10-23T22:25:17.9639826Z 17 โ }
2026-10-23T22:25:17.9639887Z โฐโโโโ
2026-10-23T22:25:17.9640185Z help: Assigning a variable to this instead of properly using arrow lambdas may be a symptom of pre-ES2015 practices or not managing scope well.
2026-10-23T22:25:17.9640188Z
2026-10-23T22:25:17.9640413Z โ typescript(no-this-alias): Unexpected aliasing of 'this' to local variable.
2026-10-23T22:25:17.9640549Z โญโ[apps/web/src/contextMenuFallback.test.ts:38:9]
2026-10-23T22:25:17.9640624Z 37 โ get isConnected() {
2026-10-23T22:25:17.9640731Z 38 โ let current: FakeElement | null = this;
2026-10-23T22:25:17.9640817Z ยท โโโโโโโ
2026-10-23T22:25:17.9640895Z 39 โ while (current?.parent) {
2026-10-23T22:25:17.9640954Z โฐโโโโ
2026-10-23T22:25:17.9641248Z help: Assigning a variable to this instead of properly using arrow lambdas may be a symptom of pre-ES2015 practices or not managing scope well.
2026-10-23T22:25:17.9641251Z
2026-10-23T22:25:17.9641495Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-23T22:25:17.9641753Z โญโ[apps/web/src/components/settings/ProviderSettingsPanel.logic.ts:4:8]
2026-10-23T22:25:17.9641871Z 3 โ AuthProvidersManageScope,
2026-10-23T22:25:17.9641952Z 4 โ type AuthSessionState,
2026-10-23T22:25:17.9642046Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9642200Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-23T22:25:17.9642277Z 5 โ type EnvironmentId,
2026-10-23T22:25:17.9642341Z โฐโโโโ
2026-10-23T22:25:17.9642450Z help: Consider removing this import.
2026-10-23T22:25:17.9642453Z
2026-10-23T22:25:17.9642664Z โ eslint(no-unused-vars): Type 'EnvironmentId' is imported but never used.
2026-10-23T22:25:17.9642812Z โญโ[packages/client-runtime/src/state/sharedSettings.ts:2:3]
2026-10-23T22:25:17.9642885Z 1 โ import type {
2026-10-23T22:25:17.9642959Z 2 โ EnvironmentId,
2026-10-23T22:25:17.9643045Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9643198Z ยท โฐโโ 'EnvironmentId' is imported here
2026-10-23T22:25:17.9643298Z 3 โ ExecutionEnvironmentCapabilities,
2026-10-23T22:25:17.9643360Z โฐโโโโ
2026-10-23T22:25:17.9643465Z help: Consider removing this import.
2026-10-23T22:25:17.9643471Z
2026-10-23T22:25:17.9643768Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-23T22:25:17.9643935Z โญโ[apps/web/src/components/settings/SettingInheritance.tsx:163:24]
2026-10-23T22:25:17.9643998Z 162 โ keys,
2026-10-23T22:25:17.9644081Z 163 โ overridingProjects = [],
2026-10-23T22:25:17.9644171Z ยท โโ
2026-10-23T22:25:17.9644258Z 164 โ onClearOverrides,
2026-10-23T22:25:17.9644321Z โฐโโโโ
2026-10-23T22:25:17.9644658Z 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-23T22:25:17.9644663Z
2026-10-23T22:25:17.9645158Z โ 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-23T22:25:17.9645326Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:169:7]
2026-10-23T22:25:17.9645402Z 168 โ });
2026-10-23T22:25:17.9645618Z 169 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-23T22:25:17.9645824Z 170 โ โ if ((yield* SubscriptionRef.get(shellState)).status === "synchronizing") break;
2026-10-23T22:25:17.9645942Z 171 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9646098Z 172 โ โฐโโถ }
2026-10-23T22:25:17.9646192Z 173 โ
2026-10-23T22:25:17.9646290Z โฐโโโโ
2026-10-23T22:25:17.9646295Z
2026-10-23T22:25:17.9646824Z โ 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-23T22:25:17.9646992Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:178:7]
2026-10-23T22:25:17.9647116Z 177 โ yield* Deferred.succeed(releaseSave, undefined);
2026-10-23T22:25:17.9647423Z 178 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-23T22:25:17.9647610Z 179 โ โ if ((yield* Ref.get(saved)).length > 0) break;
2026-10-23T22:25:17.9647727Z 180 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9647872Z 181 โ โฐโโถ }
2026-10-23T22:25:17.9647937Z 182 โ
2026-10-23T22:25:17.9647991Z โฐโโโโ
2026-10-23T22:25:17.9647993Z
2026-10-23T22:25:17.9648484Z โ 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-23T22:25:17.9648643Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:307:7]
2026-10-23T22:25:17.9648792Z 306 โ yield* Deferred.succeed(releaseUnenrichedSave, undefined);
2026-10-23T22:25:17.9649003Z 307 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-23T22:25:17.9649133Z 308 โ โ const values = yield* Ref.get(saved);
2026-10-23T22:25:17.9649351Z 309 โ โ if (values.length > 0 && values.at(-1)?.projects[0]?.repositoryIdentity != null) {
2026-10-23T22:25:17.9649450Z 310 โ โ break;
2026-10-23T22:25:17.9649542Z 311 โ โ }
2026-10-23T22:25:17.9649653Z 312 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9649795Z 313 โ โฐโโถ }
2026-10-23T22:25:17.9649859Z 314 โ
2026-10-23T22:25:17.9649924Z โฐโโโโ
2026-10-23T22:25:17.9649930Z
2026-10-23T22:25:17.9650413Z โ 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-23T22:25:17.9650584Z โญโ[packages/client-runtime/src/state/threads-sync.test.ts:1228:7]
2026-10-23T22:25:17.9650692Z 1227 โ yield* harness.replaceSession;
2026-10-23T22:25:17.9650919Z 1228 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T22:25:17.9651080Z 1229 โ โ if ((yield* Ref.get(harness.subscriptionCount)) >= 2) {
2026-10-23T22:25:17.9651179Z 1230 โ โ break;
2026-10-23T22:25:17.9651283Z 1231 โ โ }
2026-10-23T22:25:17.9651461Z 1232 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9651607Z 1233 โ โฐโโถ }
2026-10-23T22:25:17.9651698Z 1234 โ yield* Queue.offer(
2026-10-23T22:25:17.9651758Z โฐโโโโ
2026-10-23T22:25:17.9651761Z
2026-10-23T22:25:17.9652248Z โ 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-23T22:25:17.9652414Z โญโ[packages/client-runtime/src/state/threads-sync.test.ts:1337:7]
2026-10-23T22:25:17.9652510Z 1336 โ yield* harness.replaceSession;
2026-10-23T22:25:17.9652849Z 1337 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-23T22:25:17.9653064Z 1338 โ โ if ((yield* Ref.get(harness.subscriptionCount)) >= 2) break;
2026-10-23T22:25:17.9653179Z 1339 โ โ yield* Effect.yieldNow;
2026-10-23T22:25:17.9653319Z 1340 โ โฐโโถ }
2026-10-23T22:25:17.9653465Z 1341 โ expect(yield* Ref.get(harness.subscriptionCount)).toBe(2);
2026-10-23T22:25:17.9653523Z โฐโโโโ
2026-10-23T22:25:17.9653526Z
2026-10-23T22:25:17.9653734Z โ eslint(no-unused-vars): Identifier 'Arr' is imported but never used.
2026-10-23T22:25:17.9653873Z โญโ[packages/client-runtime/src/state/threadSort.ts:4:13]
2026-10-23T22:25:17.9654002Z 3 โ import type { EnvironmentThreadShell } from "./models.ts";
2026-10-23T22:25:17.9654097Z 4 โ import * as Arr from "effect/Array";
2026-10-23T22:25:17.9654188Z ยท โโฌโ
2026-10-23T22:25:17.9654320Z ยท โฐโโ 'Arr' is imported here
2026-10-23T22:25:17.9654412Z 5 โ import * as Order from "effect/Order";
2026-10-23T22:25:17.9654470Z โฐโโโโ
2026-10-23T22:25:17.9654585Z help: Consider removing this import.
2026-10-23T22:25:17.9654588Z
2026-10-23T22:25:17.9654795Z โ eslint(no-unused-vars): Identifier 'Order' is imported but never used.
2026-10-23T22:25:17.9654942Z โญโ[packages/client-runtime/src/state/threadSort.ts:5:13]
2026-10-23T22:25:17.9655035Z 4 โ import * as Arr from "effect/Array";
2026-10-23T22:25:17.9655126Z 5 โ import * as Order from "effect/Order";
2026-10-23T22:25:17.9655204Z ยท โโโฌโโ
2026-10-23T22:25:17.9655355Z ยท โฐโโ 'Order' is imported here
2026-10-23T22:25:17.9655416Z 6 โ
2026-10-23T22:25:17.9655478Z โฐโโโโ
2026-10-23T22:25:17.9655584Z help: Consider removing this import.
2026-10-23T22:25:17.9655587Z
2026-10-23T22:25:17.9655840Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-23T22:25:17.9655991Z โญโ[apps/web/src/components/chat/useComposerSend.ts:985:13]
2026-10-23T22:25:17.9656126Z 984 โ const changedBeforeDecline = draftChangedSinceSend();
2026-10-23T22:25:17.9656384Z 985 โ โญโโถ const pendingIdsBeforeDecline = pendingApprovalsRef.current.map(
2026-10-23T22:25:17.9656513Z 986 โ โ (approval) => approval.requestId,
2026-10-23T22:25:17.9656666Z 987 โ โฐโโถ );
2026-10-23T22:25:17.9656818Z 988 โ const approvalResponding = approvalsToDecline.some((approval) =>
2026-10-23T22:25:17.9656877Z โฐโโโโ
2026-10-23T22:25:17.9656960Z help: Switch to `Set`
2026-10-23T22:25:17.9656962Z
2026-10-23T22:25:17.9657148Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9657311Z โญโ[apps/web/src/components/chat/useThreadLifecycle.tsx:178:58]
2026-10-23T22:25:17.9657435Z 177 โ if (snoozeClockState.shell !== activeThreadShell) {
2026-10-23T22:25:17.9657604Z 178 โ setSnoozeClockState({ shell: activeThreadShell, now: new Date().toISOString() });
2026-10-23T22:25:17.9657745Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9658005Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9658111Z 179 โ }
2026-10-23T22:25:17.9658165Z โฐโโโโ
2026-10-23T22:25:17.9658468Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9658789Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9658792Z
2026-10-23T22:25:17.9659042Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-23T22:25:17.9663032Z โญโ[apps/web/src/components/pullRequest/pullRequestList.logic.ts:187:9]
2026-10-23T22:25:17.9663152Z 186 โ ): boolean {
2026-10-23T22:25:17.9663335Z 187 โ const labels = entry.labels.map((label) => label.name.trim().toLowerCase());
2026-10-23T22:25:17.9663521Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9663680Z 188 โ const holds = (label: string) => labels.includes(label.trim().toLowerCase());
2026-10-23T22:25:17.9663735Z โฐโโโโ
2026-10-23T22:25:17.9663823Z help: Switch to `Set`
2026-10-23T22:25:17.9663826Z
2026-10-23T22:25:17.9664013Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9664164Z โญโ[apps/web/src/components/CustomSnoozeDialog.tsx:140:58]
2026-10-23T22:25:17.9664305Z 139 โ {...(weekStartsOn === undefined ? {} : { weekStartsOn })}
2026-10-23T22:25:17.9664465Z 140 โ disabled={{ before: new Date(new Date().setHours(0, 0, 0, 0)) }}
2026-10-23T22:25:17.9664604Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9664794Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9664899Z 141 โ onSelect={(selected) => {
2026-10-23T22:25:17.9664957Z โฐโโโโ
2026-10-23T22:25:17.9665259Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9665583Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9665587Z
2026-10-23T22:25:17.9665921Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9666294Z โญโ[apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx:88:15]
2026-10-23T22:25:17.9666367Z 87 โ <li
2026-10-23T22:25:17.9666470Z 88 โ key={`${index}:${check.name}`}
2026-10-23T22:25:17.9666592Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9666752Z 89 โ className="col-span-full grid grid-cols-subgrid items-center text-xs"
2026-10-23T22:25:17.9666813Z โฐโโโโ
2026-10-23T22:25:17.9666972Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9666975Z
2026-10-23T22:25:17.9667195Z โ eslint(no-unused-vars): Type 'ThreadRunSummary' is imported but never used.
2026-10-23T22:25:17.9667332Z โญโ[apps/web/src/types.ts:22:3]
2026-10-23T22:25:17.9667456Z 21 โ EnvironmentThreadShell,
2026-10-23T22:25:17.9667555Z 22 โ ThreadRunSummary,
2026-10-23T22:25:17.9667646Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9667797Z ยท โฐโโ 'ThreadRunSummary' is imported here
2026-10-23T22:25:17.9667879Z 23 โ ThreadRuntimeSummary,
2026-10-23T22:25:17.9667935Z โฐโโโโ
2026-10-23T22:25:17.9668048Z help: Consider removing this import.
2026-10-23T22:25:17.9668051Z
2026-10-23T22:25:17.9668309Z โ eslint(no-unused-vars): Function 'normalizeTerminalContextSelection' is declared but never used.
2026-10-23T22:25:17.9668437Z โญโ[apps/web/src/lib/terminalContext.ts:56:10]
2026-10-23T22:25:17.9668500Z 55 โ
2026-10-23T22:25:17.9668615Z 56 โ function normalizeTerminalContextSelection(
2026-10-23T22:25:17.9668735Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9668949Z ยท โฐโโ 'normalizeTerminalContextSelection' is declared here
2026-10-23T22:25:17.9669052Z 57 โ selection: TerminalContextSelection,
2026-10-23T22:25:17.9669118Z โฐโโโโ
2026-10-23T22:25:17.9669232Z help: Consider removing this declaration.
2026-10-23T22:25:17.9669235Z
2026-10-23T22:25:17.9669525Z โ eslint(no-unused-vars): Variable 'useDragRegion' is declared but never used. Unused variables should start with a '_'.
2026-10-23T22:25:17.9669686Z โญโ[apps/web/src/components/preview/PreviewPanelShell.tsx:61:9]
2026-10-23T22:25:17.9669750Z 60 โ ) {
2026-10-23T22:25:17.9669930Z 61 โ const useDragRegion = isElectron && props.mode !== "sheet" && props.mode !== "embedded";
2026-10-23T22:25:17.9670022Z ยท โโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9670561Z ยท โฐโโ 'useDragRegion' is declared here
2026-10-23T22:25:17.9670732Z 62 โ const isInline = props.mode === "inline";
2026-10-23T22:25:17.9670815Z โฐโโโโ
2026-10-23T22:25:17.9670947Z help: Consider removing this declaration.
2026-10-23T22:25:17.9670951Z
2026-10-23T22:25:17.9671169Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-23T22:25:17.9671402Z โญโ[apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx:814:17]
2026-10-23T22:25:17.9671497Z 813 โ <div
2026-10-23T22:25:17.9671621Z 814 โ key={`${index}:${check.name}:${check.url ?? ""}`}
2026-10-23T22:25:17.9671774Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-23T22:25:17.9672192Z 815 โ className="group flex items-center gap-2 rounded-md pr-1 hover:bg-accent/60"
2026-10-23T22:25:17.9672322Z โฐโโโโ
2026-10-23T22:25:17.9672478Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-23T22:25:17.9672482Z
2026-10-23T22:25:17.9672781Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-23T22:25:17.9672959Z โญโ[apps/web/src/components/pullRequest/PullRequestListFilters.tsx:387:19]
2026-10-23T22:25:17.9673029Z 386 โ onFilters,
2026-10-23T22:25:17.9673101Z 387 โ authorOptions = [],
2026-10-23T22:25:17.9673188Z ยท โโ
2026-10-23T22:25:17.9673266Z 388 โ labelOptions = [],
2026-10-23T22:25:17.9673326Z โฐโโโโ
2026-10-23T22:25:17.9673667Z 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-23T22:25:17.9673673Z
2026-10-23T22:25:17.9673968Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-23T22:25:17.9674143Z โญโ[apps/web/src/components/pullRequest/PullRequestListFilters.tsx:388:18]
2026-10-23T22:25:17.9674221Z 387 โ authorOptions = [],
2026-10-23T22:25:17.9674291Z 388 โ labelOptions = [],
2026-10-23T22:25:17.9674374Z ยท โโ
2026-10-23T22:25:17.9674439Z 389 โ host,
2026-10-23T22:25:17.9674499Z โฐโโโโ
2026-10-23T22:25:17.9674823Z 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-23T22:25:17.9674832Z
2026-10-23T22:25:17.9675012Z โ react(purity): Cannot call impure function during render
2026-10-23T22:25:17.9675156Z โญโ[apps/web/src/components/CommandPalette.tsx:1996:20]
2026-10-23T22:25:17.9675290Z 1995 โ title: inferProjectTitleFromPath(destinationPath),
2026-10-23T22:25:17.9675398Z 1996 โ createdAt: new Date().toISOString(),
2026-10-23T22:25:17.9675493Z ยท โโโโโโฌโโโโ
2026-10-23T22:25:17.9675645Z ยท โฐโโ Cannot call impure function
2026-10-23T22:25:17.9675761Z 1997 โ remoteUrl: addProjectCloneFlow.remoteUrl,
2026-10-23T22:25:17.9675820Z โฐโโโโ
2026-10-23T22:25:17.9676111Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-23T22:25:17.9676429Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-23T22:25:17.9676433Z
2026-10-23T22:25:17.9676706Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9676872Z โญโ[apps/mobile/src/features/threads/use-worktree-setup.ts:30:40]
2026-10-23T22:25:17.9677044Z 28 โ const snapshot = resolveWorktreeSetupSnapshot(input.threadId, query.data, live);
2026-10-23T22:25:17.9677120Z 29 โ useEffect(() => {
2026-10-23T22:25:17.9677200Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9677340Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9677470Z 30 โ if (snapshot && snapshot !== live) setHeld({ key, snapshot });
2026-10-23T22:25:17.9677663Z ยท โโโโฌโโโ
2026-10-23T22:25:17.9677903Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9677986Z 31 โ }, [key, live, snapshot]);
2026-10-23T22:25:17.9678039Z โฐโโโโ
2026-10-23T22:25:17.9678672Z 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-23T22:25:17.9679016Z 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-23T22:25:17.9679018Z
2026-10-23T22:25:17.9679290Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9679461Z โญโ[apps/mobile/src/features/threads/NewTaskDraftRouteScreen.tsx:40:5]
2026-10-23T22:25:17.9679581Z 37 โ const [initialized, setInitialized] = useState(false);
2026-10-23T22:25:17.9679654Z 38 โ useLayoutEffect(() => {
2026-10-23T22:25:17.9679741Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9679880Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9679946Z 39 โ reset();
2026-10-23T22:25:17.9680019Z 40 โ setInitialized(true);
2026-10-23T22:25:17.9680106Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9680282Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9680356Z 41 โ }, [reset]);
2026-10-23T22:25:17.9680421Z โฐโโโโ
2026-10-23T22:25:17.9681043Z 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-23T22:25:17.9681407Z 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-23T22:25:17.9681410Z
2026-10-23T22:25:17.9681681Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9681845Z โญโ[apps/mobile/src/features/threads/NewTaskDraftRouteScreen.tsx:93:5]
2026-10-23T22:25:17.9681906Z 88 โ
2026-10-23T22:25:17.9681980Z 89 โ useEffect(() => {
2026-10-23T22:25:17.9682058Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9682191Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9682360Z 90 โ if (!needsPreparation || !initialProjectRef.branch || waitingForProject) return;
2026-10-23T22:25:17.9682473Z 91 โ const branchName = initialProjectRef.branch;
2026-10-23T22:25:17.9682547Z 92 โ let active = true;
2026-10-23T22:25:17.9682649Z 93 โ setPendingCheckouts((count) => count + 1);
2026-10-23T22:25:17.9682739Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-23T22:25:17.9682915Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9683076Z 94 โ // Serialize replacements: ignoring a stale result cannot undo its Git mutation.
2026-10-23T22:25:17.9683196Z โฐโโโโ
2026-10-23T22:25:17.9683849Z 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-23T22:25:17.9684182Z 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-23T22:25:17.9684184Z
2026-10-23T22:25:17.9684451Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9684612Z โญโ[apps/mobile/src/features/threads/ThreadMarkdownImage.tsx:57:5]
2026-10-23T22:25:17.9684666Z 55 โ
2026-10-23T22:25:17.9684743Z 56 โ useEffect(() => {
2026-10-23T22:25:17.9684822Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9684958Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9685028Z 57 โ setDecodedSize(null);
2026-10-23T22:25:17.9685114Z ยท โโโโโโโโฌโโโโโโ
2026-10-23T22:25:17.9685291Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9685366Z 58 โ }, [props.sourceKey]);
2026-10-23T22:25:17.9685417Z โฐโโโโ
2026-10-23T22:25:17.9686040Z 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-23T22:25:17.9686375Z 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-23T22:25:17.9686378Z
2026-10-23T22:25:17.9686642Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-23T22:25:17.9686800Z โญโ[apps/mobile/src/features/threads/ThreadMarkdownImage.tsx:61:5]
2026-10-23T22:25:17.9686854Z 59 โ
2026-10-23T22:25:17.9686930Z 60 โ useEffect(() => {
2026-10-23T22:25:17.9687009Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9687143Z ยท โฐโโ This is the containing effect
2026-10-23T22:25:17.9687215Z 61 โ setFailedUri(null);
2026-10-23T22:25:17.9687296Z ยท โโโโโโโฌโโโโโ
2026-10-23T22:25:17.9687546Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-23T22:25:17.9687656Z 62 โ }, [props.uri]);
2026-10-23T22:25:17.9687708Z โฐโโโโ
2026-10-23T22:25:17.9688325Z 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-23T22:25:17.9688657Z 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-23T22:25:17.9688659Z
2026-10-23T22:25:17.9688892Z โ eslint(no-unused-vars): Identifier 'ActivityIndicator' is imported but never used.
2026-10-23T22:25:17.9689057Z โญโ[apps/mobile/src/features/threads/ThreadMarkdownImage.tsx:7:10]
2026-10-23T22:25:17.9689185Z 6 โ import { parse, SvgAst, type JsxAST } from "react-native-svg";
2026-10-23T22:25:17.9689373Z 7 โ import { ActivityIndicator, Pressable, StyleSheet, View, type ViewStyle } from "react-native";
2026-10-23T22:25:17.9689471Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-23T22:25:17.9689635Z ยท โฐโโ 'ActivityIndicator' is imported here
2026-10-23T22:25:17.9689689Z 8 โ
2026-10-23T22:25:17.9689749Z โฐโโโโ
2026-10-23T22:25:17.9689858Z help: Consider removing this import.
2026-10-23T22:25:17.9689861Z
2026-10-23T22:25:17.9690074Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9690236Z โญโ[apps/mobile/src/features/threads/ThreadMarkdownImage.tsx:58:7]
2026-10-23T22:25:17.9690318Z 57 โ setDecodedSize(null);
2026-10-23T22:25:17.9690398Z 58 โ }, [props.sourceKey]);
2026-10-23T22:25:17.9690491Z ยท โโโโโโโโฌโโโโโโโ
2026-10-23T22:25:17.9690649Z ยท โฐโโ Unnecessary dependency `props.sourceKey`
2026-10-23T22:25:17.9690713Z 59 โ
2026-10-23T22:25:17.9690771Z โฐโโโโ
2026-10-23T22:25:17.9691084Z 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-23T22:25:17.9691463Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9691471Z
2026-10-23T22:25:17.9691693Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-23T22:25:17.9691858Z โญโ[apps/mobile/src/features/threads/ThreadMarkdownImage.tsx:62:7]
2026-10-23T22:25:17.9691937Z 61 โ setFailedUri(null);
2026-10-23T22:25:17.9692011Z 62 โ }, [props.uri]);
2026-10-23T22:25:17.9692092Z ยท โโโโโฌโโโโ
2026-10-23T22:25:17.9692243Z ยท โฐโโ Unnecessary dependency `props.uri`
2026-10-23T22:25:17.9692301Z 63 โ
2026-10-23T22:25:17.9692358Z โฐโโโโ
2026-10-23T22:25:17.9692666Z 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-23T22:25:17.9693080Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-23T22:25:17.9693130Z
2026-10-23T22:25:17.9693227Z Found 0 errors and 362 warnings in 5400 files (7.3s, 8 threads)
2026-10-23T22:25:18.0289242Z Post job cleanup.
2026-10-23T22:25:18.1022304Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-23T22:25:18.1128927Z Post job cleanup.
2026-10-23T22:25:18.1146227Z ##[start-action display=Cache full pnpm store;id=__ea13b644-27d8-4b8b-ac24-d2c4c3d9c038.__actions_cache]
2026-10-23T22:25:18.1522894Z Post job cleanup.
2026-10-23T22:25:18.2225627Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-3cb0b4d7cff93dc8fe33f2ea73cac71ca25a36270fcb648b9b4a9320151012ef, not saving cache.
2026-10-23T22:25:18.2265314Z ##[end-action id=__ea13b644-27d8-4b8b-ac24-d2c4c3d9c038.__actions_cache;outcome=success;conclusion=success;duration_ms=111]
2026-10-23T22:25:18.2267096Z ##[start-action display=Cache Vite+;id=__ea13b644-27d8-4b8b-ac24-d2c4c3d9c038.vp_cache]
2026-10-23T22:25:18.2288929Z Post job cleanup.
2026-10-23T22:25:18.2967783Z 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-23T22:25:18.3009969Z ##[end-action id=__ea13b644-27d8-4b8b-ac24-d2c4c3d9c038.vp_cache;outcome=success;conclusion=success;duration_ms=74]
2026-10-23T22:25:18.3061753Z Post job cleanup.
2026-10-23T22:25:18.3616846Z [command]/usr/local/bin/git version
2026-10-23T22:25:18.3658309Z git version 2.55.0
2026-10-23T22:25:18.3690098Z Temporarily overriding HOME='/home/runner/_work/_temp/f4361a75-7622-4eba-b727-4703105f8d63' before making global git config changes
2026-10-23T22:25:18.3690537Z Adding repository directory to the temporary git global config as a safe directory
2026-10-23T22:25:18.3695833Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-23T22:25:18.3733216Z Removing SSH command configuration
2026-10-23T22:25:18.3738391Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-23T22:25:18.3774905Z [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-23T22:25:18.3911583Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-23T22:25:18.3940567Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-23T22:25:18.3991027Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-23T22:25:18.4016545Z ##[group]Run '/job_completed.sh'
2026-10-23T22:25:18.4028797Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-23T22:25:18.4029104Z env:
2026-10-23T22:25:18.4029305Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 193
2026-10-23T22:25:18.4029574Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 447
2026-10-23T22:25:18.4029839Z BLACKSMITH_CHECK_RUN_ID: 120686836548
2026-10-23T22:25:18.4030094Z BLACKSMITH_JOB_DISPLAY_NAME: Lint
2026-10-23T22:25:18.4030477Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-23T22:25:18.4030730Z ##[endgroup]
2026-10-23T22:25:18.4132219Z Docker container cache not activated, skipping hash computation.
2026-10-23T22:25:18.4416533Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-23T22:25:18.4471579Z Cleaning up orphan processes