GitHub check
256 KB of 603 KB loaded Download the full log (603 KB)
347 KB of earlier output not loaded
op-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-24T22:14:10.6083919Z โญโ[packages/client-runtime/src/rpc/client.test.ts:258:7]
2026-10-24T22:14:10.6083972Z 257 โ
2026-10-24T22:14:10.6084217Z 258 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-24T22:14:10.6084325Z 259 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6084455Z 260 โ โฐโโถ }
2026-10-24T22:14:10.6084585Z 261 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-24T22:14:10.6084633Z โฐโโโโ
2026-10-24T22:14:10.6084636Z
2026-10-24T22:14:10.6085087Z โ 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-24T22:14:10.6085216Z โญโ[packages/client-runtime/src/rpc/client.test.ts:322:7]
2026-10-24T22:14:10.6085276Z 321 โ );
2026-10-24T22:14:10.6085533Z 322 โ โญโโถ for (let attempt = 0; attempt < 100 && observedFailures.length < 1; attempt += 1) {
2026-10-24T22:14:10.6085634Z 323 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6085762Z 324 โ โฐโโถ }
2026-10-24T22:14:10.6085815Z 325 โ
2026-10-24T22:14:10.6085865Z โฐโโโโ
2026-10-24T22:14:10.6085868Z
2026-10-24T22:14:10.6086313Z โ 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-24T22:14:10.6086439Z โญโ[packages/client-runtime/src/rpc/client.test.ts:330:7]
2026-10-24T22:14:10.6086597Z 329 โ yield* SubscriptionRef.set(activeSession, Option.some(session(secondClient)));
2026-10-24T22:14:10.6086885Z 330 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-24T22:14:10.6087011Z 331 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6087136Z 332 โ โฐโโถ }
2026-10-24T22:14:10.6087237Z 333 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-24T22:14:10.6087287Z โฐโโโโ
2026-10-24T22:14:10.6087289Z
2026-10-24T22:14:10.6087739Z โ 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-24T22:14:10.6087890Z โญโ[apps/server/src/project/ProjectEnrichmentService.test.ts:28:3]
2026-10-24T22:14:10.6087943Z 27 โ ) {
2026-10-24T22:14:10.6088144Z 28 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-24T22:14:10.6088291Z 29 โ โ const available = yield* service.peek(workspaceRoot);
2026-10-24T22:14:10.6088412Z 30 โ โ if (predicate(available)) return available;
2026-10-24T22:14:10.6088507Z 31 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6088627Z 32 โ โฐโโถ }
2026-10-24T22:14:10.6088804Z 33 โ return yield* Effect.die(`Project metadata for ${workspaceRoot} was not resolved in time.`);
2026-10-24T22:14:10.6088854Z โฐโโโโ
2026-10-24T22:14:10.6088856Z
2026-10-24T22:14:10.6089077Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-24T22:14:10.6089222Z โญโ[packages/client-runtime/src/operations/projects.ts:238:51]
2026-10-24T22:14:10.6089284Z 237 โ ): string {
2026-10-24T22:14:10.6089434Z 238 โ const folderName = workspaceRoot.split(/[\\/]/).filter(Boolean).at(-1) ?? "";
2026-10-24T22:14:10.6089542Z ยท โโโโโโ
2026-10-24T22:14:10.6089669Z 239 โ return target.owner ? `${target.owner}/${folderName}` : folderName;
2026-10-24T22:14:10.6089718Z โฐโโโโ
2026-10-24T22:14:10.6089886Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-24T22:14:10.6089889Z
2026-10-24T22:14:10.6090142Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6090304Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:217:7]
2026-10-24T22:14:10.6090362Z 213 โ };
2026-10-24T22:14:10.6090431Z 214 โ useEffect(() => {
2026-10-24T22:14:10.6090500Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6090628Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6090798Z 215 โ const inserted = ownerKey ? readComposerDraftSelection(ownerKey, draftMessage) : null;
2026-10-24T22:14:10.6090862Z 216 โ if (inserted) {
2026-10-24T22:14:10.6090935Z 217 โ setSelection((current) =>
2026-10-24T22:14:10.6091010Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6091177Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6091343Z 218 โ current.start === inserted.start && current.end === inserted.end ? current : inserted,
2026-10-24T22:14:10.6091390Z โฐโโโโ
2026-10-24T22:14:10.6092040Z 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-24T22:14:10.6092384Z 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-24T22:14:10.6092386Z
2026-10-24T22:14:10.6092638Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6092798Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:298:7]
2026-10-24T22:14:10.6092871Z 286 โ }, [hasWorkspaceSnapshot]);
2026-10-24T22:14:10.6092934Z 287 โ useEffect(() => {
2026-10-24T22:14:10.6093007Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6093134Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6093276Z 288 โ if (!environmentId || !projectCwd || !selectedProviderInstanceId) return;
2026-10-24T22:14:10.6093422Z 289 โ const key = `${environmentId}:${selectedProviderInstanceId}:${projectCwd}`;
2026-10-24T22:14:10.6093493Z 290 โ const now = Date.now();
2026-10-24T22:14:10.6093603Z 291 โ const lastRequest = workspaceRefreshKeyRef.current;
2026-10-24T22:14:10.6093657Z 292 โ if (
2026-10-24T22:14:10.6093732Z 293 โ lastRequest?.key === key &&
2026-10-24T22:14:10.6093871Z 294 โ now - lastRequest.requestedAt < PROVIDER_WORKSPACE_SNAPSHOT_TTL_MS
2026-10-24T22:14:10.6093924Z 295 โ )
2026-10-24T22:14:10.6093982Z 296 โ return;
2026-10-24T22:14:10.6094161Z 297 โ if (hasCurrentProviderWorkspaceSnapshot(selectedProviderStatus, projectCwd, now)) {
2026-10-24T22:14:10.6094247Z 298 โ setWorkspaceRefreshRetry(null);
2026-10-24T22:14:10.6094340Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6094513Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6094593Z 299 โ return;
2026-10-24T22:14:10.6094642Z โฐโโโโ
2026-10-24T22:14:10.6095226Z 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-24T22:14:10.6095592Z 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-24T22:14:10.6095625Z
2026-10-24T22:14:10.6095821Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6095981Z โญโ[apps/mobile/src/features/threads/use-composer-command-menu.ts:328:5]
2026-10-24T22:14:10.6096034Z 327 โ }, [
2026-10-24T22:14:10.6096095Z 328 โ draftMessage,
2026-10-24T22:14:10.6096169Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6096311Z ยท โฐโโ Unnecessary dependency `draftMessage`
2026-10-24T22:14:10.6096374Z 329 โ environmentId,
2026-10-24T22:14:10.6096421Z โฐโโโโ
2026-10-24T22:14:10.6096710Z 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-24T22:14:10.6097022Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6097027Z
2026-10-24T22:14:10.6097483Z โ 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-24T22:14:10.6097613Z โญโ[apps/server/src/project/ProjectService.test.ts:94:3]
2026-10-24T22:14:10.6097665Z 93 โ ) {
2026-10-24T22:14:10.6097863Z 94 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-24T22:14:10.6098037Z 95 โ โ const project = Option.getOrThrow(yield* service.getById(projectId));
2026-10-24T22:14:10.6098157Z 96 โ โ if (predicate(project)) return project;
2026-10-24T22:14:10.6098255Z 97 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6098374Z 98 โ โฐโโถ }
2026-10-24T22:14:10.6098521Z 99 โ return yield* Effect.die(`Project ${projectId} was not enriched in time.`);
2026-10-24T22:14:10.6098570Z โฐโโโโ
2026-10-24T22:14:10.6098573Z
2026-10-24T22:14:10.6099032Z โ 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-24T22:14:10.6099206Z โญโ[apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts:223:5]
2026-10-24T22:14:10.6099282Z 222 โ let idlePasses = 0;
2026-10-24T22:14:10.6099426Z 223 โ โญโโถ for (;;) {
2026-10-24T22:14:10.6099559Z 224 โ โ yield* Effect.promise(() => Promise.resolve());
2026-10-24T22:14:10.6099699Z 225 โ โ const pending = backgroundRuntime.pending.shift();
2026-10-24T22:14:10.6099793Z 226 โ โ if (!pending) {
2026-10-24T22:14:10.6099883Z 227 โ โ idlePasses++;
2026-10-24T22:14:10.6099984Z 228 โ โ if (idlePasses >= 3) {
2026-10-24T22:14:10.6100067Z 229 โ โ return;
2026-10-24T22:14:10.6100142Z 230 โ โ }
2026-10-24T22:14:10.6100225Z 231 โ โ continue;
2026-10-24T22:14:10.6100299Z 232 โ โ }
2026-10-24T22:14:10.6100441Z 233 โ โ idlePasses = 0;
2026-10-24T22:14:10.6100588Z 234 โ โ const exit = yield* Effect.exit(
2026-10-24T22:14:10.6100796Z 235 โ โ pending.operation as Effect.Effect<unknown, unknown, ManagedRelay.ManagedRelayClient>,
2026-10-24T22:14:10.6100870Z 236 โ โ );
2026-10-24T22:14:10.6100973Z 237 โ โ yield* Effect.sync(() => {
2026-10-24T22:14:10.6101075Z 238 โ โ pending.resolve(exit);
2026-10-24T22:14:10.6101148Z 239 โ โ });
2026-10-24T22:14:10.6101275Z 240 โ โฐโโถ }
2026-10-24T22:14:10.6101329Z 241 โ },
2026-10-24T22:14:10.6101379Z โฐโโโโ
2026-10-24T22:14:10.6101382Z
2026-10-24T22:14:10.6101842Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T22:14:10.6101967Z โญโ[packages/effect-acp/src/protocol.test.ts:500:31]
2026-10-24T22:14:10.6102018Z 499 โ
2026-10-24T22:14:10.6102127Z 500 โ const response = yield* Schema.decodeUnknownEffect(
2026-10-24T22:14:10.6102244Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6102347Z 501 โ Schema.fromJsonString(JsonRpcErrorResponse),
2026-10-24T22:14:10.6102396Z โฐโโโโ
2026-10-24T22:14:10.6102398Z
2026-10-24T22:14:10.6102766Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownEffect(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-24T22:14:10.6102942Z โญโ[packages/effect-acp/src/client.ts:1269:11]
2026-10-24T22:14:10.6103099Z 1268 โ extNotificationHandlers.set(CLIENT_METHODS.mcp_message, (params) =>
2026-10-24T22:14:10.6103267Z 1269 โ Schema.decodeUnknownEffect(AcpSchemaV2.MessageMcpNotification)(params).pipe(
2026-10-24T22:14:10.6103368Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6103512Z 1270 โ Effect.mapError(() => AcpError.AcpRequestError.invalidParams()),
2026-10-24T22:14:10.6103563Z โฐโโโโ
2026-10-24T22:14:10.6103566Z
2026-10-24T22:14:10.6104017Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T22:14:10.6104141Z โญโ[packages/effect-acp/src/errors.test.ts:129:28]
2026-10-24T22:14:10.6104232Z 128 โ const secret = "acp-summary-secret";
2026-10-24T22:14:10.6104338Z 129 โ const cause = yield* Schema.decodeUnknownEffect(
2026-10-24T22:14:10.6104452Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6104517Z 130 โ Schema.Struct({
2026-10-24T22:14:10.6104595Z โฐโโโโ
2026-10-24T22:14:10.6104598Z
2026-10-24T22:14:10.6104926Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-24T22:14:10.6105040Z โญโ[packages/effect-acp/src/schema.test.ts:18:12]
2026-10-24T22:14:10.6105200Z 17 โ const command = { name: "plan", description: "Make a plan", input: { hint: "Task" } };
2026-10-24T22:14:10.6105388Z 18 โ expect(Schema.is(V1.AvailableCommand)(command)).toBe(true);
2026-10-24T22:14:10.6105504Z ยท โโโโโโโโโ
2026-10-24T22:14:10.6105562Z 19 โ expect(
2026-10-24T22:14:10.6105611Z โฐโโโโ
2026-10-24T22:14:10.6105613Z
2026-10-24T22:14:10.6105936Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-24T22:14:10.6106052Z โญโ[packages/effect-acp/src/schema.test.ts:20:7]
2026-10-24T22:14:10.6106110Z 19 โ expect(
2026-10-24T22:14:10.6106274Z 20 โ Schema.is(V2.AvailableCommand)({ ...command, input: { type: "text", hint: "Task" } }),
2026-10-24T22:14:10.6106345Z ยท โโโโโโโโโ
2026-10-24T22:14:10.6106406Z 21 โ ).toBe(true);
2026-10-24T22:14:10.6106457Z โฐโโโโ
2026-10-24T22:14:10.6106460Z
2026-10-24T22:14:10.6106645Z โ unicorn(no-new-array): Do not use `new Array(singleArgument)`.
2026-10-24T22:14:10.6106764Z โญโ[apps/web/src/terminal/ghostty/core.ts:194:19]
2026-10-24T22:14:10.6106887Z 193 โ const count = Math.min(CHUNK_SIZE, graphemeLength - start);
2026-10-24T22:14:10.6106977Z 194 โ const codes = new Array<number>(count);
2026-10-24T22:14:10.6107083Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6107182Z 195 โ for (let index = 0; index < count; index += 1) {
2026-10-24T22:14:10.6107233Z โฐโโโโ
2026-10-24T22:14:10.6107650Z 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-24T22:14:10.6107653Z
2026-10-24T22:14:10.6107852Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T22:14:10.6108000Z โญโ[apps/mobile/modules/t3-source-text/src/SourceText.tsx:36:9]
2026-10-24T22:14:10.6108085Z 35 โ <T3SourceTextRunNativeComponent
2026-10-24T22:14:10.6108151Z 36 โ key={index}
2026-10-24T22:14:10.6108232Z ยท โโโโโโโโโโโ
2026-10-24T22:14:10.6108306Z 37 โ style={flattenedStyle}
2026-10-24T22:14:10.6108356Z โฐโโโโ
2026-10-24T22:14:10.6108504Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T22:14:10.6108506Z
2026-10-24T22:14:10.6108730Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-24T22:14:10.6108852Z โญโ[apps/server/src/terminal/Manager.test.ts:731:31]
2026-10-24T22:14:10.6108913Z 730 โ );
2026-10-24T22:14:10.6109088Z 731 โ const snapshot = events.filter((event) => event.type === "snapshot").at(-1)?.snapshot;
2026-10-24T22:14:10.6109185Z ยท โโโโโโ
2026-10-24T22:14:10.6109299Z 732 โ expect(snapshot?.history).toBe("aa๐\rEND");
2026-10-24T22:14:10.6109349Z โฐโโโโ
2026-10-24T22:14:10.6109517Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-24T22:14:10.6109520Z
2026-10-24T22:14:10.6109723Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-24T22:14:10.6109890Z โญโ[apps/web/src/components/settings/ProviderSettingsPanel.logic.ts:4:8]
2026-10-24T22:14:10.6109962Z 3 โ AuthProvidersManageScope,
2026-10-24T22:14:10.6110033Z 4 โ type AuthSessionState,
2026-10-24T22:14:10.6110174Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6110353Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-24T22:14:10.6110418Z 5 โ type EnvironmentId,
2026-10-24T22:14:10.6110471Z โฐโโโโ
2026-10-24T22:14:10.6110571Z help: Consider removing this import.
2026-10-24T22:14:10.6110573Z
2026-10-24T22:14:10.6110765Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T22:14:10.6110930Z โญโ[apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx:818:17]
2026-10-24T22:14:10.6110995Z 817 โ <div
2026-10-24T22:14:10.6111108Z 818 โ key={`${index}:${check.name}:${check.url ?? ""}`}
2026-10-24T22:14:10.6111248Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6111415Z 819 โ className="group flex items-center gap-2 rounded-md pr-1 hover:bg-accent/60"
2026-10-24T22:14:10.6111498Z โฐโโโโ
2026-10-24T22:14:10.6111738Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T22:14:10.6111741Z
2026-10-24T22:14:10.6112013Z โ eslint(no-unused-vars): Function 'normalizeTerminalContextSelection' is declared but never used.
2026-10-24T22:14:10.6112139Z โญโ[apps/web/src/lib/terminalContext.ts:56:10]
2026-10-24T22:14:10.6112227Z 55 โ
2026-10-24T22:14:10.6112358Z 56 โ function normalizeTerminalContextSelection(
2026-10-24T22:14:10.6112508Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6112710Z ยท โฐโโ 'normalizeTerminalContextSelection' is declared here
2026-10-24T22:14:10.6112834Z 57 โ selection: TerminalContextSelection,
2026-10-24T22:14:10.6112912Z โฐโโโโ
2026-10-24T22:14:10.6113062Z help: Consider removing this declaration.
2026-10-24T22:14:10.6113065Z
2026-10-24T22:14:10.6113258Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T22:14:10.6113455Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:555:70]
2026-10-24T22:14:10.6113565Z 554 โ assert.deepStrictEqual(
2026-10-24T22:14:10.6113754Z 555 โ (yield* Ref.get(fixture.syncCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-24T22:14:10.6113908Z ยท โฌ
2026-10-24T22:14:10.6114079Z ยท โฐโโ '_' is declared here
2026-10-24T22:14:10.6114177Z 556 โ [
2026-10-24T22:14:10.6114251Z โฐโโโโ
2026-10-24T22:14:10.6114408Z help: Consider removing this parameter.
2026-10-24T22:14:10.6114411Z
2026-10-24T22:14:10.6114631Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T22:14:10.6114833Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:1155:70]
2026-10-24T22:14:10.6114942Z 1154 โ assert.deepStrictEqual(
2026-10-24T22:14:10.6115134Z 1155 โ (yield* Ref.get(fixture.linkCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-24T22:14:10.6115272Z ยท โฌ
2026-10-24T22:14:10.6115464Z ยท โฐโโ '_' is declared here
2026-10-24T22:14:10.6115617Z 1156 โ [
2026-10-24T22:14:10.6115718Z โฐโโโโ
2026-10-24T22:14:10.6115838Z help: Consider removing this parameter.
2026-10-24T22:14:10.6115866Z
2026-10-24T22:14:10.6116064Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T22:14:10.6116255Z โญโ[apps/web/src/components/pullRequest/PullRequestChecksPopover.tsx:88:15]
2026-10-24T22:14:10.6116339Z 87 โ <li
2026-10-24T22:14:10.6116456Z 88 โ key={`${index}:${check.name}`}
2026-10-24T22:14:10.6116589Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6116758Z 89 โ className="col-span-full grid grid-cols-subgrid items-center text-xs"
2026-10-24T22:14:10.6116831Z โฐโโโโ
2026-10-24T22:14:10.6116993Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T22:14:10.6117002Z
2026-10-24T22:14:10.6117190Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6117371Z โญโ[apps/web/src/components/chat/useThreadLifecycle.tsx:178:58]
2026-10-24T22:14:10.6117507Z 177 โ if (snoozeClockState.shell !== activeThreadShell) {
2026-10-24T22:14:10.6117694Z 178 โ setSnoozeClockState({ shell: activeThreadShell, now: new Date().toISOString() });
2026-10-24T22:14:10.6117818Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6118033Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6118114Z 179 โ }
2026-10-24T22:14:10.6118189Z โฐโโโโ
2026-10-24T22:14:10.6118487Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6118808Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6118811Z
2026-10-24T22:14:10.6119094Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6119249Z โญโ[apps/mobile/src/components/ProjectFavicon.tsx:172:5]
2026-10-24T22:14:10.6119462Z 167 โ const [activeFaviconRequest, setActiveFaviconRequest] = useState<typeof faviconRequest>(null);
2026-10-24T22:14:10.6119570Z 168 โ useLayoutEffect(() => {
2026-10-24T22:14:10.6119663Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6119817Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6119983Z 169 โ if (faviconRequest === null) return;
2026-10-24T22:14:10.6120079Z 170 โ
2026-10-24T22:14:10.6120244Z 171 โ const endRequest = beginProjectFaviconRequest(faviconRequest);
2026-10-24T22:14:10.6120373Z 172 โ setActiveFaviconRequest(faviconRequest);
2026-10-24T22:14:10.6120490Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6120691Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6120763Z 173 โ return endRequest;
2026-10-24T22:14:10.6120869Z โฐโโโโ
2026-10-24T22:14:10.6121493Z 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-24T22:14:10.6121836Z 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-24T22:14:10.6121839Z
2026-10-24T22:14:10.6122023Z โ eslint(no-control-regex): Unexpected control character
2026-10-24T22:14:10.6122237Z โญโ[apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx:220:46]
2026-10-24T22:14:10.6122405Z 219 โ <Text selectable className="font-mono text-sm text-foreground">
2026-10-24T22:14:10.6122567Z 220 โ {interaction.output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")}
2026-10-24T22:14:10.6122698Z ยท โโโฌโ
2026-10-24T22:14:10.6122870Z ยท โฐโโ 'U+001B' is a control character.
2026-10-24T22:14:10.6122980Z 221 โ </Text>
2026-10-24T22:14:10.6123059Z โฐโโโโ
2026-10-24T22:14:10.6123309Z help: Avoid matching control characters in regular expressions. If intentional, disable this rule for the expression.
2026-10-24T22:14:10.6123311Z
2026-10-24T22:14:10.6123502Z โ eslint(no-unused-vars): Type 'Scope' is imported but never used.
2026-10-24T22:14:10.6123665Z โญโ[apps/server/src/provider/ProviderAuthService.ts:15:18]
2026-10-24T22:14:10.6123787Z 14 โ import * as Layer from "effect/Layer";
2026-10-24T22:14:10.6123904Z 15 โ import type * as Scope from "effect/Scope";
2026-10-24T22:14:10.6123993Z ยท โโโฌโโ
2026-10-24T22:14:10.6124143Z ยท โฐโโ 'Scope' is imported here
2026-10-24T22:14:10.6124286Z 16 โ import * as Stream from "effect/Stream";
2026-10-24T22:14:10.6124365Z โฐโโโโ
2026-10-24T22:14:10.6124489Z help: Consider removing this import.
2026-10-24T22:14:10.6124491Z
2026-10-24T22:14:10.6124784Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6124946Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:60:5]
2026-10-24T22:14:10.6125033Z 57 โ
2026-10-24T22:14:10.6125123Z 58 โ useEffect(() => {
2026-10-24T22:14:10.6125206Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6125351Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6125487Z 59 โ const controller = new AbortController();
2026-10-24T22:14:10.6125585Z 60 โ setLoadState("pending");
2026-10-24T22:14:10.6125724Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6125948Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6126130Z 61 โ // A renewed signature is used on Retry, not as a reason to reset the native player.
2026-10-24T22:14:10.6126210Z โฐโโโโ
2026-10-24T22:14:10.6126802Z 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-24T22:14:10.6127146Z 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-24T22:14:10.6127148Z
2026-10-24T22:14:10.6127367Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6127546Z โญโ[apps/mobile/src/components/MediaVideoPlayer.tsx:71:7]
2026-10-24T22:14:10.6127649Z 70 โ return () => controller.abort();
2026-10-24T22:14:10.6127753Z 71 โ }, [player, props.playRequested, attempt]);
2026-10-24T22:14:10.6127950Z ยท โโโโฌโโ โโโโโโโโโโฌโโโโโโโโโ โโโโฌโโโ
2026-10-24T22:14:10.6128212Z ยท โ โ โฐโโ Unnecessary dependency `attempt`
2026-10-24T22:14:10.6128439Z ยท โ โฐโโ Unnecessary dependency `props.playRequested`
2026-10-24T22:14:10.6128612Z ยท โฐโโ Unnecessary dependency `player_0`
2026-10-24T22:14:10.6128679Z 72 โ
2026-10-24T22:14:10.6128753Z โฐโโโโ
2026-10-24T22:14:10.6129090Z 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-24T22:14:10.6129424Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6129426Z
2026-10-24T22:14:10.6129636Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6129791Z โญโ[apps/mobile/src/components/ComposerEditor.tsx:82:6]
2026-10-24T22:14:10.6129873Z 81 โ },
2026-10-24T22:14:10.6129967Z 82 โ [draftKey],
2026-10-24T22:14:10.6130053Z ยท โโโโโฌโโโ
2026-10-24T22:14:10.6130218Z ยท โฐโโ Unnecessary dependency `draftKey`
2026-10-24T22:14:10.6130293Z 83 โ );
2026-10-24T22:14:10.6130386Z โฐโโโโ
2026-10-24T22:14:10.6130680Z 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-24T22:14:10.6131012Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6131015Z
2026-10-24T22:14:10.6131293Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-24T22:14:10.6131484Z โญโ[apps/server/src/orchestration-v2/ThreadPullRequestService.ts:410:7]
2026-10-24T22:14:10.6131574Z 409 โ
2026-10-24T22:14:10.6131759Z 410 โ const layer = Layer.effect(ThreadPullRequestServiceV2, make);
2026-10-24T22:14:10.6131885Z ยท โโโฌโโ
2026-10-24T22:14:10.6132028Z ยท โฐโโ 'layer' is declared here
2026-10-24T22:14:10.6132130Z โฐโโโโ
2026-10-24T22:14:10.6132243Z help: Consider removing this declaration.
2026-10-24T22:14:10.6132245Z
2026-10-24T22:14:10.6132463Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T22:14:10.6132633Z โญโ[apps/mobile/src/components/ComposerContextSheet.tsx:272:25]
2026-10-24T22:14:10.6132772Z 271 โ {record.elements?.map((element, index) => (
2026-10-24T22:14:10.6132967Z 272 โ <View key={`${element.selector ?? element.tagName}:${index}`} className="gap-3">
2026-10-24T22:14:10.6133134Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6133236Z 273 โ <ContextField
2026-10-24T22:14:10.6133309Z โฐโโโโ
2026-10-24T22:14:10.6133496Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T22:14:10.6133500Z
2026-10-24T22:14:10.6133693Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-24T22:14:10.6133833Z โญโ[apps/mobile/src/lib/useHoverGesture.ts:8:15]
2026-10-24T22:14:10.6133919Z 7 โ () =>
2026-10-24T22:14:10.6134016Z 8 โ Gesture.Hover()
2026-10-24T22:14:10.6134110Z ยท โโโฌโโ
2026-10-24T22:14:10.6134268Z ยท โฐโโ `Hover` may be a component
2026-10-24T22:14:10.6134368Z 9 โ .manualActivation(true)
2026-10-24T22:14:10.6134448Z โฐโโโโ
2026-10-24T22:14:10.6134783Z 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-24T22:14:10.6135253Z 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-24T22:14:10.6135255Z
2026-10-24T22:14:10.6135445Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-24T22:14:10.6135621Z โญโ[apps/server/src/provider/Drivers/CodexDriver.test.ts:466:14]
2026-10-24T22:14:10.6135703Z 465 โ
2026-10-24T22:14:10.6135824Z 466 โ for (const {} of ["direct", "wrapper"] as const) {
2026-10-24T22:14:10.6135923Z ยท โโ
2026-10-24T22:14:10.6136007Z 467 โ }
2026-10-24T22:14:10.6136077Z โฐโโโโ
2026-10-24T22:14:10.6136324Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-24T22:14:10.6136327Z
2026-10-24T22:14:10.6136628Z โ eslint(no-unused-vars): Variable 'useDragRegion' is declared but never used. Unused variables should start with a '_'.
2026-10-24T22:14:10.6136801Z โญโ[apps/web/src/components/preview/PreviewPanelShell.tsx:61:9]
2026-10-24T22:14:10.6136878Z 60 โ ) {
2026-10-24T22:14:10.6137046Z 61 โ const useDragRegion = isElectron && props.mode !== "sheet" && props.mode !== "embedded";
2026-10-24T22:14:10.6137169Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6137332Z ยท โฐโโ 'useDragRegion' is declared here
2026-10-24T22:14:10.6137505Z 62 โ const isInline = props.mode === "inline";
2026-10-24T22:14:10.6137603Z โฐโโโโ
2026-10-24T22:14:10.6137736Z help: Consider removing this declaration.
2026-10-24T22:14:10.6137739Z
2026-10-24T22:14:10.6137967Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-24T22:14:10.6138147Z โญโ[apps/mobile/src/features/terminal/TerminalContextSheet.tsx:72:15]
2026-10-24T22:14:10.6138240Z 71 โ <Pressable
2026-10-24T22:14:10.6138310Z 72 โ key={index}
2026-10-24T22:14:10.6138441Z ยท โโโโโโโโโโโ
2026-10-24T22:14:10.6138553Z 73 โ accessibilityRole="button"
2026-10-24T22:14:10.6138630Z โฐโโโโ
2026-10-24T22:14:10.6138784Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-24T22:14:10.6138787Z
2026-10-24T22:14:10.6139077Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6139273Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:261:5]
2026-10-24T22:14:10.6139367Z 259 โ .join("|");
2026-10-24T22:14:10.6139443Z 260 โ useEffect(() => {
2026-10-24T22:14:10.6139534Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6139717Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6139805Z 261 โ stop();
2026-10-24T22:14:10.6139884Z ยท โโโฌโ
2026-10-24T22:14:10.6140076Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6140174Z 262 โ }, [orderVersion]);
2026-10-24T22:14:10.6140257Z โฐโโโโ
2026-10-24T22:14:10.6140865Z 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-24T22:14:10.6141212Z 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-24T22:14:10.6141215Z
2026-10-24T22:14:10.6141452Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6141653Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:261:5]
2026-10-24T22:14:10.6141741Z 260 โ useEffect(() => {
2026-10-24T22:14:10.6141812Z 261 โ stop();
2026-10-24T22:14:10.6141911Z ยท โโโฌโ
2026-10-24T22:14:10.6142069Z ยท โฐโโ Missing dependency `stop`
2026-10-24T22:14:10.6142167Z 262 โ }, [orderVersion]);
2026-10-24T22:14:10.6142255Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6142427Z ยท โฐโโ Unnecessary dependency `orderVersion`
2026-10-24T22:14:10.6142511Z 263 โ useEffect(
2026-10-24T22:14:10.6142611Z โฐโโโโ
2026-10-24T22:14:10.6143147Z 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-24T22:14:10.6143557Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6143601Z
2026-10-24T22:14:10.6143774Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6143962Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:96:9]
2026-10-24T22:14:10.6144080Z 95 โ const latest = useRef(props);
2026-10-24T22:14:10.6144165Z 96 โ latest.current = props;
2026-10-24T22:14:10.6144294Z ยท โโโโฌโโโโโโโฌโโโ
2026-10-24T22:14:10.6144489Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T22:14:10.6144682Z ยท โฐโโ This value is a ref
2026-10-24T22:14:10.6144766Z 97 โ const gesture = useMemo(
2026-10-24T22:14:10.6144845Z โฐโโโโ
2026-10-24T22:14:10.6145340Z 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-24T22:14:10.6145661Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6145664Z
2026-10-24T22:14:10.6145842Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6146011Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:104:18]
2026-10-24T22:14:10.6146103Z 103 โ .runOnJS(true)
2026-10-24T22:14:10.6146223Z 104 โ .onStart(() => latest.current.onStart())
2026-10-24T22:14:10.6146383Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6146597Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6146757Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6146831Z โฐโโโโ
2026-10-24T22:14:10.6147321Z 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-24T22:14:10.6147645Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6147648Z
2026-10-24T22:14:10.6147801Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6148034Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:105:19]
2026-10-24T22:14:10.6148184Z 104 โ .onStart(() => latest.current.onStart())
2026-10-24T22:14:10.6148363Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6148534Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6148754Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6148911Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6148991Z โฐโโโโ
2026-10-24T22:14:10.6149487Z 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-24T22:14:10.6149788Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6149806Z
2026-10-24T22:14:10.6149961Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6150138Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:106:16]
2026-10-24T22:14:10.6150311Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6150460Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6150611Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6150856Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6151011Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-24T22:14:10.6151097Z โฐโโโโ
2026-10-24T22:14:10.6151566Z 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-24T22:14:10.6151886Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6151888Z
2026-10-24T22:14:10.6152050Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6152246Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:107:21]
2026-10-24T22:14:10.6152402Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6152540Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-24T22:14:10.6152707Z ยท โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6152941Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6153043Z 108 โ [props.disabled],
2026-10-24T22:14:10.6153125Z โฐโโโโ
2026-10-24T22:14:10.6153590Z 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-24T22:14:10.6157644Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6157677Z
2026-10-24T22:14:10.6157846Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6158006Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:249:9]
2026-10-24T22:14:10.6158118Z 248 โ const latest = useRef({ rows, planners, moveThread });
2026-10-24T22:14:10.6158221Z 249 โ latest.current = { rows, planners, moveThread };
2026-10-24T22:14:10.6158324Z ยท โโโโฌโโโโโโโฌโโโ
2026-10-24T22:14:10.6158502Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T22:14:10.6158614Z ยท โฐโโ This value is a ref
2026-10-24T22:14:10.6158665Z 250 โ
2026-10-24T22:14:10.6158719Z โฐโโโโ
2026-10-24T22:14:10.6159173Z 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-24T22:14:10.6159458Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6159461Z
2026-10-24T22:14:10.6159603Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6159758Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:247:22]
2026-10-24T22:14:10.6159873Z 246 โ const [preview, setPreview] = useState<Drag | null>(null);
2026-10-24T22:14:10.6159988Z 247 โ const translateY = useRef(new Animated.Value(0)).current;
2026-10-24T22:14:10.6160112Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6160276Z ยท โฐโโ Cannot access ref value during render
2026-10-24T22:14:10.6160382Z 248 โ const latest = useRef({ rows, planners, moveThread });
2026-10-24T22:14:10.6160430Z โฐโโโโ
2026-10-24T22:14:10.6160884Z 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-24T22:14:10.6161168Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6161170Z
2026-10-24T22:14:10.6161343Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6161501Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:324:16]
2026-10-24T22:14:10.6161564Z 323 โ update(0);
2026-10-24T22:14:10.6161643Z 324 โ let last = performance.now();
2026-10-24T22:14:10.6161737Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6161872Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6161939Z 325 โ const tick = () => {
2026-10-24T22:14:10.6161989Z โฐโโโโ
2026-10-24T22:14:10.6162282Z help: `performance.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6162618Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6162657Z
2026-10-24T22:14:10.6162840Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-24T22:14:10.6162996Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:99:15]
2026-10-24T22:14:10.6163055Z 98 โ () =>
2026-10-24T22:14:10.6163120Z 99 โ Gesture.Pan()
2026-10-24T22:14:10.6163191Z ยท โโฌโ
2026-10-24T22:14:10.6163319Z ยท โฐโโ `Pan` may be a component
2026-10-24T22:14:10.6163397Z 100 โ .enabled(!props.disabled)
2026-10-24T22:14:10.6163445Z โฐโโโโ
2026-10-24T22:14:10.6163716Z 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-24T22:14:10.6164152Z 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-24T22:14:10.6164154Z
2026-10-24T22:14:10.6164337Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T22:14:10.6164496Z โญโ[apps/mobile/src/features/threads/ThreadArrangementSheet.tsx:108:5]
2026-10-24T22:14:10.6164595Z 103 โ .runOnJS(true)
2026-10-24T22:14:10.6164693Z 104 โ .onStart(() => latest.current.onStart())
2026-10-24T22:14:10.6164779Z ยท โโโโฌโโ
2026-10-24T22:14:10.6165206Z ยท โฐโโ Missing dependency `latest`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6165337Z 105 โ .onUpdate((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6165455Z 106 โ .onEnd((event) => latest.current.onMove(event.translationY))
2026-10-24T22:14:10.6165577Z 107 โ .onFinalize((_, success) => latest.current.onEnd(!success)),
2026-10-24T22:14:10.6165642Z 108 โ [props.disabled],
2026-10-24T22:14:10.6165722Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6165903Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6165959Z 109 โ );
2026-10-24T22:14:10.6166008Z โฐโโโโ
2026-10-24T22:14:10.6166215Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T22:14:10.6166522Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6166524Z
2026-10-24T22:14:10.6166978Z โ 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-24T22:14:10.6167099Z โญโ[packages/shared/src/atomicWrite.test.ts:139:5]
2026-10-24T22:14:10.6167173Z 138 โ Effect.gen(function* () {
2026-10-24T22:14:10.6167360Z 139 โ โญโโถ while (fiber.pollUnsafe() === undefined) {
2026-10-24T22:14:10.6167479Z 140 โ โ yield* TestClock.adjust("100 millis");
2026-10-24T22:14:10.6167836Z 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-24T22:14:10.6168047Z 142 โ โ yield* Effect.promise(() => new Promise((resolve) => setImmediate(resolve)));
2026-10-24T22:14:10.6168173Z 143 โ โฐโโถ }
2026-10-24T22:14:10.6168255Z 144 โ return yield* Fiber.join(fiber);
2026-10-24T22:14:10.6168305Z โฐโโโโ
2026-10-24T22:14:10.6168308Z
2026-10-24T22:14:10.6168560Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6168716Z โญโ[apps/mobile/src/features/terminal/terminalLaunchContext.ts:117:5]
2026-10-24T22:14:10.6168883Z 112 โ const [entry, setEntry] = useState(() => ({ key: input.targetKey, location: candidate }));
2026-10-24T22:14:10.6168948Z 113 โ useEffect(() => {
2026-10-24T22:14:10.6169019Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6169146Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6169304Z 114 โ if (entry.key === input.targetKey && (entry.location !== null || candidate === null)) {
2026-10-24T22:14:10.6169364Z 115 โ return;
2026-10-24T22:14:10.6169417Z 116 โ }
2026-10-24T22:14:10.6169531Z 117 โ setEntry({ key: input.targetKey, location: candidate });
2026-10-24T22:14:10.6169599Z ยท โโโโโฌโโโ
2026-10-24T22:14:10.6169763Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6169881Z 118 โ }, [candidate, entry.key, entry.location, input.targetKey]);
2026-10-24T22:14:10.6169938Z โฐโโโโ
2026-10-24T22:14:10.6170520Z 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-24T22:14:10.6170827Z 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-24T22:14:10.6170829Z
2026-10-24T22:14:10.6171079Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6171226Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:570:5]
2026-10-24T22:14:10.6171327Z 568 โ }, []);
2026-10-24T22:14:10.6171414Z 569 โ useEffect(() => {
2026-10-24T22:14:10.6171482Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6171605Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6171688Z 570 โ setKeyboardStateSuspect(false);
2026-10-24T22:14:10.6171774Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6171939Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6172038Z 571 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-24T22:14:10.6172088Z โฐโโโโ
2026-10-24T22:14:10.6172666Z 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-24T22:14:10.6172973Z 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-24T22:14:10.6172976Z
2026-10-24T22:14:10.6173222Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6173369Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:966:7]
2026-10-24T22:14:10.6173518Z 963 โ const [lastKnownKeyboardHeight, setLastKnownKeyboardHeight] = useState(0);
2026-10-24T22:14:10.6173578Z 964 โ useEffect(() => {
2026-10-24T22:14:10.6173645Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6173774Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6173931Z 965 โ if (liveKeyboardHeight > 0 && liveKeyboardHeight !== lastKnownKeyboardHeight) {
2026-10-24T22:14:10.6174041Z 966 โ setLastKnownKeyboardHeight(liveKeyboardHeight);
2026-10-24T22:14:10.6174137Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6174306Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6174358Z 967 โ }
2026-10-24T22:14:10.6174405Z โฐโโโโ
2026-10-24T22:14:10.6175022Z 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-24T22:14:10.6175336Z 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-24T22:14:10.6175341Z
2026-10-24T22:14:10.6175589Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6175740Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1222:5]
2026-10-24T22:14:10.6175792Z 1220 โ
2026-10-24T22:14:10.6175855Z 1221 โ useEffect(() => {
2026-10-24T22:14:10.6175925Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6176051Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6176125Z 1222 โ setAnchorMessageId(null);
2026-10-24T22:14:10.6176207Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6176424Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6176532Z 1223 โ setSubmittedMessageId(null);
2026-10-24T22:14:10.6176580Z โฐโโโโ
2026-10-24T22:14:10.6177158Z 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-24T22:14:10.6177468Z 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-24T22:14:10.6177470Z
2026-10-24T22:14:10.6177666Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6177816Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:571:7]
2026-10-24T22:14:10.6177899Z 570 โ setKeyboardStateSuspect(false);
2026-10-24T22:14:10.6177995Z 571 โ }, [isKeyboardVisible, liveKeyboardHeight]);
2026-10-24T22:14:10.6178136Z ยท โโโโโโโโโฌโโโโโโโโ โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6178342Z ยท โ โฐโโ Unnecessary dependency `liveKeyboardHeight`
2026-10-24T22:14:10.6178497Z ยท โฐโโ Unnecessary dependency `isKeyboardVisible`
2026-10-24T22:14:10.6178619Z 572 โ const handleOwnedInputFocusChange = (focused: boolean) => {
2026-10-24T22:14:10.6178669Z โฐโโโโ
2026-10-24T22:14:10.6178961Z 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-24T22:14:10.6179267Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6179270Z
2026-10-24T22:14:10.6179461Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6179612Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1170:7]
2026-10-24T22:14:10.6179695Z 1169 โ userInputInsetProgress.set(1);
2026-10-24T22:14:10.6179853Z 1170 โ }, [activeUserInputRequestId, userInputCardProgress, userInputInsetProgress]);
2026-10-24T22:14:10.6179943Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6180116Z ยท โฐโโ Unnecessary dependency `activeUserInputRequestId`
2026-10-24T22:14:10.6180225Z 1171 โ const showContent = props.showContent ?? true;
2026-10-24T22:14:10.6180278Z โฐโโโโ
2026-10-24T22:14:10.6180561Z 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-24T22:14:10.6180864Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6180866Z
2026-10-24T22:14:10.6181058Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6181210Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1228:15]
2026-10-24T22:14:10.6181276Z 1227 โ freeze.set(false);
2026-10-24T22:14:10.6181354Z 1228 โ }, [freeze, selectedThreadKey]);
2026-10-24T22:14:10.6181491Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6181685Z ยท โฐโโ Unnecessary dependency `selectedThreadKey`
2026-10-24T22:14:10.6181737Z 1229 โ
2026-10-24T22:14:10.6181784Z โฐโโโโ
2026-10-24T22:14:10.6182065Z 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-24T22:14:10.6182366Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6182368Z
2026-10-24T22:14:10.6182519Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6182665Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1058:5]
2026-10-24T22:14:10.6182777Z 1053 โ const composerPopoverHeight = useSharedValue(0);
2026-10-24T22:14:10.6182979Z 1054 โ const floatingControlCoverage = useSharedValue(
2026-10-24T22:14:10.6183072Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6183231Z ยท โฐโโ `floatingControlCoverage` originates here
2026-10-24T22:14:10.6183355Z 1055 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-24T22:14:10.6183409Z 1056 โ );
2026-10-24T22:14:10.6183473Z 1057 โ useEffect(() => {
2026-10-24T22:14:10.6183575Z 1058 โ floatingControlCoverage.value = withTiming(
2026-10-24T22:14:10.6183662Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6183822Z ยท โฐโโ `floatingControlCoverage` cannot be modified
2026-10-24T22:14:10.6183952Z 1059 โ showFloatingStatus ? FLOATING_WORKING_CONTROL_COVERAGE : 0,
2026-10-24T22:14:10.6184004Z โฐโโโโ
2026-10-24T22:14:10.6184259Z 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-24T22:14:10.6184584Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6184587Z
2026-10-24T22:14:10.6184753Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6184901Z โญโ[apps/mobile/src/features/threads/ThreadDetailScreen.tsx:1076:7]
2026-10-24T22:14:10.6185080Z 1066 โ const userInputCoverageApplies = Platform.OS === "ios" && activeUserInputRequestId !== null;
2026-10-24T22:14:10.6185206Z 1067 โ const combinedContentInsetEndAdjustment = useSharedValue(
2026-10-24T22:14:10.6185318Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6185501Z ยท โฐโโ `combinedContentInsetEndAdjustment` originates here
2026-10-24T22:14:10.6185626Z 1068 โ Math.max(0, estimatedOverlayHeight - nativeInsetOvercount),
2026-10-24T22:14:10.6185681Z 1069 โ );
2026-10-24T22:14:10.6185749Z 1070 โ useAnimatedReaction(
2026-10-24T22:14:10.6185807Z 1071 โ () =>
2026-10-24T22:14:10.6185894Z 1072 โ contentInsetEndAdjustment.value +
2026-10-24T22:14:10.6185982Z 1073 โ floatingControlCoverage.value +
2026-10-24T22:14:10.6186176Z 1074 โ (userInputCoverageApplies ? userInputInsetProgress.value * userInputCardCoverage.value : 0),
2026-10-24T22:14:10.6186239Z 1075 โ (value) => {
2026-10-24T22:14:10.6186348Z 1076 โ combinedContentInsetEndAdjustment.value = value;
2026-10-24T22:14:10.6186529Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6186753Z ยท โฐโโ `combinedContentInsetEndAdjustment` cannot be modified
2026-10-24T22:14:10.6186807Z 1077 โ },
2026-10-24T22:14:10.6186855Z โฐโโโโ
2026-10-24T22:14:10.6187113Z 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-24T22:14:10.6187408Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6187411Z
2026-10-24T22:14:10.6187659Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6187831Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:643:5]
2026-10-24T22:14:10.6187884Z 638 โ
2026-10-24T22:14:10.6187946Z 639 โ useEffect(() => {
2026-10-24T22:14:10.6188015Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6188143Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6188248Z 640 โ if (pendingLaunchEntry.key === launchTargetKey) {
2026-10-24T22:14:10.6188308Z 641 โ return;
2026-10-24T22:14:10.6188361Z 642 โ }
2026-10-24T22:14:10.6188433Z 643 โ setPendingLaunchEntry({
2026-10-24T22:14:10.6188517Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6188683Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6188751Z 644 โ key: launchTargetKey,
2026-10-24T22:14:10.6188799Z โฐโโโโ
2026-10-24T22:14:10.6189388Z 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-24T22:14:10.6189704Z 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-24T22:14:10.6189707Z
2026-10-24T22:14:10.6189955Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6190118Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:653:5]
2026-10-24T22:14:10.6190169Z 648 โ
2026-10-24T22:14:10.6190290Z 649 โ useEffect(() => {
2026-10-24T22:14:10.6190384Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6190509Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6190618Z 650 โ if (initialAttachGridEntry.key === launchTargetKey) {
2026-10-24T22:14:10.6190676Z 651 โ return;
2026-10-24T22:14:10.6190728Z 652 โ }
2026-10-24T22:14:10.6190805Z 653 โ setInitialAttachGridEntry({
2026-10-24T22:14:10.6190894Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6191063Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6191132Z 654 โ key: launchTargetKey,
2026-10-24T22:14:10.6191182Z โฐโโโโ
2026-10-24T22:14:10.6191766Z 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-24T22:14:10.6192078Z 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-24T22:14:10.6192080Z
2026-10-24T22:14:10.6192328Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6192492Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:746:7]
2026-10-24T22:14:10.6192541Z 743 โ
2026-10-24T22:14:10.6192601Z 744 โ useEffect(() => {
2026-10-24T22:14:10.6192668Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6192796Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6192895Z 745 โ if (!routeEnvironmentId || !routeThreadId) {
2026-10-24T22:14:10.6192958Z 746 โ setLastGridSize({
2026-10-24T22:14:10.6193036Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6193205Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6193284Z 747 โ cols: DEFAULT_TERMINAL_COLS,
2026-10-24T22:14:10.6193331Z โฐโโโโ
2026-10-24T22:14:10.6193909Z 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-24T22:14:10.6194226Z 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-24T22:14:10.6194230Z
2026-10-24T22:14:10.6194425Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6194617Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:538:24]
2026-10-24T22:14:10.6194670Z 537 โ });
2026-10-24T22:14:10.6194791Z 538 โ }, [terminal.buffer, terminal.buffer.length, terminalKey]);
2026-10-24T22:14:10.6194898Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6195136Z ยท โฐโโ Overly precise dependency `terminal.buffer.length`, use `terminal.buffer` instead
2026-10-24T22:14:10.6195341Z 539 โ const cwd = terminal.summary?.cwd ?? selectedThreadProject?.workspaceRoot ?? null;
2026-10-24T22:14:10.6195419Z โฐโโโโ
2026-10-24T22:14:10.6195705Z 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-24T22:14:10.6196006Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6196008Z
2026-10-24T22:14:10.6196201Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6196362Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:709:7]
2026-10-24T22:14:10.6196454Z 708 โ sentInitialInputKeyRef.current = null;
2026-10-24T22:14:10.6196516Z 709 โ }, [terminalKey]);
2026-10-24T22:14:10.6196596Z ยท โโโโโโฌโโโโโ
2026-10-24T22:14:10.6196736Z ยท โฐโโ Unnecessary dependency `terminalKey`
2026-10-24T22:14:10.6196785Z 710 โ
2026-10-24T22:14:10.6196834Z โฐโโโโ
2026-10-24T22:14:10.6197117Z 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-24T22:14:10.6197414Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6197418Z
2026-10-24T22:14:10.6197609Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6197772Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:800:52]
2026-10-24T22:14:10.6197829Z 799 โ };
2026-10-24T22:14:10.6198005Z 800 โ }, [canOperateTerminal, isRunning, pasteSession, terminal.lifecycleVersion, terminalKey]);
2026-10-24T22:14:10.6198178Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ โโโโโโฌโโโโโ
2026-10-24T22:14:10.6198403Z ยท โ โฐโโ Unnecessary dependency `terminalKey`
2026-10-24T22:14:10.6198607Z ยท โฐโโ Unnecessary dependency `terminal.lifecycleVersion`
2026-10-24T22:14:10.6198659Z 801 โ
2026-10-24T22:14:10.6198706Z โฐโโโโ
2026-10-24T22:14:10.6198997Z 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-24T22:14:10.6199301Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6199303Z
2026-10-24T22:14:10.6199444Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6199606Z โญโ[apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx:793:24]
2026-10-24T22:14:10.6199656Z 792 โ }
2026-10-24T22:14:10.6199760Z 793 โ const pasteSession = pasteSessionRef.current;
2026-10-24T22:14:10.6199868Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6200024Z ยท โฐโโ Cannot access ref value during render
2026-10-24T22:14:10.6200073Z 794 โ
2026-10-24T22:14:10.6200122Z โฐโโโโ
2026-10-24T22:14:10.6200632Z 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-24T22:14:10.6200942Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6200944Z
2026-10-24T22:14:10.6201148Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-24T22:14:10.6201282Z โญโ[packages/shared/src/composerContextLegacySend.ts:19:45]
2026-10-24T22:14:10.6201403Z 18 โ const occurrences = collectComposerContextReferences(text);
2026-10-24T22:14:10.6201509Z 19 โ for (const occurrence of [...occurrences].reverse()) {
2026-10-24T22:14:10.6201619Z ยท โโโโโโโ
2026-10-24T22:14:10.6201727Z 20 โ const record = recordsById.get(occurrence.contextId);
2026-10-24T22:14:10.6201777Z โฐโโโโ
2026-10-24T22:14:10.6202028Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-24T22:14:10.6202031Z
2026-10-24T22:14:10.6202280Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-24T22:14:10.6202416Z โญโ[packages/provider-opencode/src/server/adapter.ts:3755:7]
2026-10-24T22:14:10.6202469Z 3754 โ
2026-10-24T22:14:10.6202664Z 3755 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, OpenCodeAdapterV2DriverEnv> =
2026-10-24T22:14:10.6202738Z ยท โโโฌโโ
2026-10-24T22:14:10.6202860Z ยท โฐโโ 'layer' is declared here
2026-10-24T22:14:10.6202922Z 3756 โ Layer.effect(
2026-10-24T22:14:10.6202972Z โฐโโโโ
2026-10-24T22:14:10.6203071Z help: Consider removing this declaration.
2026-10-24T22:14:10.6203074Z
2026-10-24T22:14:10.6203214Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6203328Z โญโ[apps/mobile/src/components/ui/Menu.tsx:54:36]
2026-10-24T22:14:10.6203502Z 53 โ const child = children as ReactElement<Pick<PressableProps, "onTouchStart" | "onPress">>;
2026-10-24T22:14:10.6203673Z 54 โ โญโโถ children = cloneElement(child, {
2026-10-24T22:14:10.6203774Z 55 โ โ onTouchStart: (event) => {
2026-10-24T22:14:10.6203934Z 56 โ โ // Reset for a new touch, not onPressIn, which also fires when a
2026-10-24T22:14:10.6204088Z 57 โ โ // finger moves out of the row and back during the same gesture.
2026-10-24T22:14:10.6204210Z 58 โ โ menuPress.current.isPreparing = false;
2026-10-24T22:14:10.6204373Z 59 โ โ menuPress.current.suppressPress = menuPress.current.isOpen;
2026-10-24T22:14:10.6204480Z 60 โ โ pendingPress.current = null;
2026-10-24T22:14:10.6204621Z 61 โ โ child.props.onTouchStart?.(event);
2026-10-24T22:14:10.6204695Z 62 โ โ },
2026-10-24T22:14:10.6204789Z 63 โ โ onPress: (event) => {
2026-10-24T22:14:10.6205005Z 64 โ โ // Accessibility clicks have no touch identifier and must not inherit
2026-10-24T22:14:10.6205170Z 65 โ โ // cancellation from a previous physical gesture.
2026-10-24T22:14:10.6205332Z 66 โ โ const isTouch = typeof event.nativeEvent.identifier === "number";
2026-10-24T22:14:10.6205515Z 67 โ โ if (isTouch ? menuPress.current.suppressPress : menuPress.current.isOpen) {
2026-10-24T22:14:10.6205598Z 68 โ โ return;
2026-10-24T22:14:10.6205673Z 69 โ โ }
2026-10-24T22:14:10.6205809Z 70 โ โ if (isTouch && menuPress.current.isPreparing) {
2026-10-24T22:14:10.6205972Z 71 โ โ // A release can arrive between native menu preparation and display.
2026-10-24T22:14:10.6206137Z 72 โ โ // Let UIKit's display/cancel callback decide this press's outcome.
2026-10-24T22:14:10.6206234Z 73 โ โ event.persist();
2026-10-24T22:14:10.6206389Z 74 โ โ pendingPress.current = () => child.props.onPress?.(event);
2026-10-24T22:14:10.6206472Z 75 โ โ return;
2026-10-24T22:14:10.6206543Z 76 โ โ }
2026-10-24T22:14:10.6206653Z 77 โ โ child.props.onPress?.(event);
2026-10-24T22:14:10.6206727Z 78 โ โ },
2026-10-24T22:14:10.6206855Z 79 โ โโโถ });
2026-10-24T22:14:10.6207084Z ยท โฐโโโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6207185Z 80 โ menuProps.onMenuInteractionStart = () => {
2026-10-24T22:14:10.6207241Z โฐโโโโ
2026-10-24T22:14:10.6207697Z 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-24T22:14:10.6207979Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6207982Z
2026-10-24T22:14:10.6208159Z โ react(static-components): Cannot create components during render
2026-10-24T22:14:10.6208318Z โญโ[apps/mobile/src/features/terminal/NativeTerminalSurface.tsx:234:10]
2026-10-24T22:14:10.6208400Z 196 โ const { onInput, onResize } = props;
2026-10-24T22:14:10.6208545Z 197 โ const NativeTerminalSurfaceView = resolveNativeTerminalSurfaceView();
2026-10-24T22:14:10.6208672Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6208854Z ยท โฐโโ The component is created during render here
2026-10-24T22:14:10.6208978Z 198 โ const hasNativeSurface = Boolean(NativeTerminalSurfaceView);
2026-10-24T22:14:10.6209028Z 199 โ
2026-10-24T22:14:10.6209089Z 200 โ useEffect(() => {
2026-10-24T22:14:10.6209173Z 201 โ terminalDebugLog("native:surface", {
2026-10-24T22:14:10.6209256Z 202 โ terminalKey: props.terminalKey,
2026-10-24T22:14:10.6209329Z 203 โ native: hasNativeSurface,
2026-10-24T22:14:10.6209457Z 204 โ hardwareKeyRevision: getNativeTerminalHardwareKeyRevision(),
2026-10-24T22:14:10.6209538Z 205 โ bufferLen: props.buffer.length,
2026-10-24T22:14:10.6209661Z 206 โ isRunning: props.isRunning,
2026-10-24T22:14:10.6209742Z 207 โ });
2026-10-24T22:14:10.6209894Z 208 โ }, [hasNativeSurface, props.buffer.length, props.isRunning, props.terminalKey]);
2026-10-24T22:14:10.6209981Z 209 โ const handleNativeInput = useCallback(
2026-10-24T22:14:10.6210091Z 210 โ (event: NativeSyntheticEvent<TerminalInputEvent>) => {
2026-10-24T22:14:10.6210184Z 211 โ if (!props.isRunning || props.readOnly) {
2026-10-24T22:14:10.6210243Z 212 โ return;
2026-10-24T22:14:10.6210298Z 213 โ }
2026-10-24T22:14:10.6210383Z 214 โ terminalDebugLog("native:onInput", {
2026-10-24T22:14:10.6210530Z 215 โ codes: Array.from(event.nativeEvent.data, (char) => char.codePointAt(0)),
2026-10-24T22:14:10.6210585Z 216 โ });
2026-10-24T22:14:10.6210667Z 217 โ onInput(event.nativeEvent.data);
2026-10-24T22:14:10.6210719Z 218 โ },
2026-10-24T22:14:10.6210819Z 219 โ [onInput, props.isRunning, props.readOnly],
2026-10-24T22:14:10.6210872Z 220 โ );
2026-10-24T22:14:10.6210958Z 221 โ const handleNativeResize = useCallback(
2026-10-24T22:14:10.6211067Z 222 โ (event: NativeSyntheticEvent<TerminalResizeEvent>) => {
2026-10-24T22:14:10.6211126Z 223 โ onResize({
2026-10-24T22:14:10.6211206Z 224 โ cols: event.nativeEvent.cols,
2026-10-24T22:14:10.6211284Z 225 โ rows: event.nativeEvent.rows,
2026-10-24T22:14:10.6211339Z 226 โ });
2026-10-24T22:14:10.6211389Z 227 โ },
2026-10-24T22:14:10.6211449Z 228 โ [onResize],
2026-10-24T22:14:10.6211499Z 229 โ );
2026-10-24T22:14:10.6211548Z 230 โ
2026-10-24T22:14:10.6211626Z 231 โ if (NativeTerminalSurfaceView) {
2026-10-24T22:14:10.6211684Z 232 โ return (
2026-10-24T22:14:10.6211759Z 233 โ <View style={props.style}>
2026-10-24T22:14:10.6211841Z 234 โ <NativeTerminalSurfaceView
2026-10-24T22:14:10.6211942Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6212097Z ยท โฐโโ This component is created during render
2026-10-24T22:14:10.6212188Z 235 โ appearanceScheme={themeAppearance}
2026-10-24T22:14:10.6212238Z โฐโโโโ
2026-10-24T22:14:10.6212477Z help: Components created during render will reset their state each time they are created. Declare components outside of render
2026-10-24T22:14:10.6212791Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
2026-10-24T22:14:10.6212793Z
2026-10-24T22:14:10.6213048Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6213185Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2195:5]
2026-10-24T22:14:10.6213237Z 2193 โ );
2026-10-24T22:14:10.6213301Z 2194 โ useEffect(() => {
2026-10-24T22:14:10.6213371Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6213498Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6213567Z 2195 โ setExpandedVideo(null);
2026-10-24T22:14:10.6213647Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6213814Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6213883Z 2196 โ setExpandedFile(null);
2026-10-24T22:14:10.6213931Z โฐโโโโ
2026-10-24T22:14:10.6214587Z 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-24T22:14:10.6214931Z 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-24T22:14:10.6214934Z
2026-10-24T22:14:10.6215182Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6215313Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2700:9]
2026-10-24T22:14:10.6215445Z 2691 โ const stopFollowingEnd = useEffectEvent(() => setEndFollow(false));
2026-10-24T22:14:10.6215508Z 2692 โ useEffect(() => {
2026-10-24T22:14:10.6215576Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6215705Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6215830Z 2693 โ if (!jumpToMessageId || loadedListKey !== listMountKey) return;
2026-10-24T22:14:10.6215923Z 2694 โ const index = presentedFeed.findIndex(
2026-10-24T22:14:10.6216052Z 2695 โ (entry) => entry.type === "message" && entry.id === jumpToMessageId,
2026-10-24T22:14:10.6216105Z 2696 โ );
2026-10-24T22:14:10.6216169Z 2697 โ if (index === -1) {
2026-10-24T22:14:10.6216293Z 2698 โ const runId = messageFoldRunId(props.feed, jumpToMessageId);
2026-10-24T22:14:10.6216392Z 2699 โ if (runId && !expandedTurnIds.has(runId)) {
2026-10-24T22:14:10.6216481Z 2700 โ setInteractionState((current) => ({
2026-10-24T22:14:10.6216567Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6216745Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6216811Z 2701 โ ...current,
2026-10-24T22:14:10.6216861Z โฐโโโโ
2026-10-24T22:14:10.6217440Z 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-24T22:14:10.6217752Z 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-24T22:14:10.6217754Z
2026-10-24T22:14:10.6217976Z โ eslint(no-unused-vars): Identifier 'isMarkdownFileLinkLabel' is imported but never used.
2026-10-24T22:14:10.6218154Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:70:10]
2026-10-24T22:14:10.6218315Z 69 โ import { resolveAssetUrl } from "@t3tools/client-runtime/state/assets";
2026-10-24T22:14:10.6218446Z 70 โ import { isMarkdownFileLinkLabel } from "@t3tools/shared/markdownLinks";
2026-10-24T22:14:10.6218540Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6218701Z ยท โฐโโ 'isMarkdownFileLinkLabel' is imported here
2026-10-24T22:14:10.6218850Z 71 โ import { formatAttachmentSize } from "@t3tools/client-runtime/state/attachments";
2026-10-24T22:14:10.6218897Z โฐโโโโ
2026-10-24T22:14:10.6218990Z help: Consider removing this import.
2026-10-24T22:14:10.6218993Z
2026-10-24T22:14:10.6219193Z โ eslint(no-unused-vars): Identifier 'createContext' is imported but never used.
2026-10-24T22:14:10.6219325Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:96:3]
2026-10-24T22:14:10.6219382Z 95 โ import {
2026-10-24T22:14:10.6219443Z 96 โ createContext,
2026-10-24T22:14:10.6219513Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6219645Z ยท โฐโโ 'createContext' is imported here
2026-10-24T22:14:10.6219696Z 97 โ memo,
2026-10-24T22:14:10.6219744Z โฐโโโโ
2026-10-24T22:14:10.6219837Z help: Consider removing this import.
2026-10-24T22:14:10.6219840Z
2026-10-24T22:14:10.6220045Z โ eslint(no-unused-vars): Identifier 'ActivityIndicator' is imported but never used.
2026-10-24T22:14:10.6220174Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:112:3]
2026-10-24T22:14:10.6220228Z 111 โ import {
2026-10-24T22:14:10.6220293Z 112 โ ActivityIndicator,
2026-10-24T22:14:10.6220376Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6220516Z ยท โฐโโ 'ActivityIndicator' is imported here
2026-10-24T22:14:10.6220570Z 113 โ Image,
2026-10-24T22:14:10.6220619Z โฐโโโโ
2026-10-24T22:14:10.6220711Z help: Consider removing this import.
2026-10-24T22:14:10.6220713Z
2026-10-24T22:14:10.6220906Z โ eslint(no-unused-vars): Identifier 'ScrollView' is imported but never used.
2026-10-24T22:14:10.6221033Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:119:3]
2026-10-24T22:14:10.6221093Z 118 โ Pressable,
2026-10-24T22:14:10.6221153Z 119 โ ScrollView,
2026-10-24T22:14:10.6221221Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6221348Z ยท โฐโโ 'ScrollView' is imported here
2026-10-24T22:14:10.6221412Z 120 โ StyleSheet,
2026-10-24T22:14:10.6221463Z โฐโโโโ
2026-10-24T22:14:10.6221552Z help: Consider removing this import.
2026-10-24T22:14:10.6221555Z
2026-10-24T22:14:10.6221746Z โ eslint(no-unused-vars): Identifier 'NativeText' is imported but never used.
2026-10-24T22:14:10.6221876Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:121:11]
2026-10-24T22:14:10.6221933Z 120 โ StyleSheet,
2026-10-24T22:14:10.6221996Z 121 โ Text as NativeText,
2026-10-24T22:14:10.6222072Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6222202Z ยท โฐโโ 'NativeText' is imported here
2026-10-24T22:14:10.6222266Z 122 โ type ColorValue,
2026-10-24T22:14:10.6222313Z โฐโโโโ
2026-10-24T22:14:10.6222407Z help: Consider removing this import.
2026-10-24T22:14:10.6222410Z
2026-10-24T22:14:10.6222672Z โ eslint(no-unused-vars): Identifier 'tryOpenExternalUrl' is imported but never used.
2026-10-24T22:14:10.6223051Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:144:10]
2026-10-24T22:14:10.6223183Z 143 โ import { copyTextWithHaptic } from "../../lib/copyTextWithHaptic";
2026-10-24T22:14:10.6223305Z 144 โ import { tryOpenExternalUrl } from "../../lib/openExternalUrl";
2026-10-24T22:14:10.6223392Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6223540Z ยท โฐโโ 'tryOpenExternalUrl' is imported here
2026-10-24T22:14:10.6223682Z 145 โ import { downloadAndShareAttachment } from "../../lib/attachmentDownload";
2026-10-24T22:14:10.6223729Z โฐโโโโ
2026-10-24T22:14:10.6223821Z help: Consider removing this import.
2026-10-24T22:14:10.6223824Z
2026-10-24T22:14:10.6224038Z โ eslint(no-unused-vars): Identifier 'faviconUrlForOrigin' is imported but never used.
2026-10-24T22:14:10.6224169Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:147:10]
2026-10-24T22:14:10.6224297Z 146 โ import { hasWideMarkdownBlock } from "../../lib/wideMarkdownBlocks";
2026-10-24T22:14:10.6224416Z 147 โ import { faviconUrlForOrigin } from "@t3tools/shared/favicon";
2026-10-24T22:14:10.6224503Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6224695Z ยท โฐโโ 'faviconUrlForOrigin' is imported here
2026-10-24T22:14:10.6224750Z 148 โ import {
2026-10-24T22:14:10.6224799Z โฐโโโโ
2026-10-24T22:14:10.6224891Z help: Consider removing this import.
2026-10-24T22:14:10.6224894Z
2026-10-24T22:14:10.6225105Z โ eslint(no-unused-vars): Identifier 'MediaVideoPlayer' is imported but never used.
2026-10-24T22:14:10.6225235Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:161:10]
2026-10-24T22:14:10.6225378Z 160 โ import { VideoAttachmentTile } from "../../components/VideoAttachmentTile";
2026-10-24T22:14:10.6225507Z 161 โ import { MediaVideoPlayer } from "../../components/MediaVideoPlayer";
2026-10-24T22:14:10.6225590Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6225734Z ยท โฐโโ 'MediaVideoPlayer' is imported here
2026-10-24T22:14:10.6225867Z 162 โ import { resolveMarkdownMediaPreview } from "../../lib/markdownMedia";
2026-10-24T22:14:10.6225916Z โฐโโโโ
2026-10-24T22:14:10.6226007Z help: Consider removing this import.
2026-10-24T22:14:10.6226010Z
2026-10-24T22:14:10.6226228Z โ eslint(no-unused-vars): Identifier 'mediaVideoPreviewUri' is imported but never used.
2026-10-24T22:14:10.6226358Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:165:3]
2026-10-24T22:14:10.6226437Z 164 โ attachmentVideoPreviewSource,
2026-10-24T22:14:10.6226505Z 165 โ mediaVideoPreviewUri,
2026-10-24T22:14:10.6226585Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6226734Z ยท โฐโโ 'mediaVideoPreviewUri' is imported here
2026-10-24T22:14:10.6226802Z 166 โ mediaVideoThumbnailKey,
2026-10-24T22:14:10.6226851Z โฐโโโโ
2026-10-24T22:14:10.6226940Z help: Consider removing this import.
2026-10-24T22:14:10.6226945Z
2026-10-24T22:14:10.6227162Z โ eslint(no-unused-vars): Identifier 'mediaVideoThumbnailKey' is imported but never used.
2026-10-24T22:14:10.6227353Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:166:3]
2026-10-24T22:14:10.6227457Z 165 โ mediaVideoPreviewUri,
2026-10-24T22:14:10.6227524Z 166 โ mediaVideoThumbnailKey,
2026-10-24T22:14:10.6227606Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6227759Z ยท โฐโโ 'mediaVideoThumbnailKey' is imported here
2026-10-24T22:14:10.6227836Z 167 โ type MediaVideoPreviewSource,
2026-10-24T22:14:10.6227883Z โฐโโโโ
2026-10-24T22:14:10.6227973Z help: Consider removing this import.
2026-10-24T22:14:10.6227975Z
2026-10-24T22:14:10.6228183Z โ eslint(no-unused-vars): Type 'MediaVideoPreviewSource' is imported but never used.
2026-10-24T22:14:10.6228309Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:167:8]
2026-10-24T22:14:10.6228377Z 166 โ mediaVideoThumbnailKey,
2026-10-24T22:14:10.6228456Z 167 โ type MediaVideoPreviewSource,
2026-10-24T22:14:10.6228552Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6228709Z ยท โฐโโ 'MediaVideoPreviewSource' is imported here
2026-10-24T22:14:10.6228793Z 168 โ } from "../../lib/videoPreviewSource";
2026-10-24T22:14:10.6228839Z โฐโโโโ
2026-10-24T22:14:10.6228929Z help: Consider removing this import.
2026-10-24T22:14:10.6228931Z
2026-10-24T22:14:10.6229124Z โ eslint(no-unused-vars): Type 'ReviewDiffTheme' is imported but never used.
2026-10-24T22:14:10.6229253Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:175:15]
2026-10-24T22:14:10.6229420Z 174 โ import { parseReviewCommentMessageSegments } from "../review/reviewCommentSelection";
2026-10-24T22:14:10.6229560Z 175 โ import type { ReviewDiffTheme } from "../review/shikiReviewHighlighter";
2026-10-24T22:14:10.6229649Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6229794Z ยท โฐโโ 'ReviewDiffTheme' is imported here
2026-10-24T22:14:10.6229848Z 176 โ import {
2026-10-24T22:14:10.6229900Z โฐโโโโ
2026-10-24T22:14:10.6229989Z help: Consider removing this import.
2026-10-24T22:14:10.6229992Z
2026-10-24T22:14:10.6230213Z โ eslint(no-unused-vars): Identifier 'resolveMarkdownFontSizes' is imported but never used.
2026-10-24T22:14:10.6230339Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:190:3]
2026-10-24T22:14:10.6230395Z 189 โ import {
2026-10-24T22:14:10.6230468Z 190 โ resolveMarkdownFontSizes,
2026-10-24T22:14:10.6230556Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6230714Z ยท โฐโโ 'resolveMarkdownFontSizes' is imported here
2026-10-24T22:14:10.6230800Z 191 โ resolveNativeMarkdownTypography,
2026-10-24T22:14:10.6230849Z โฐโโโโ
2026-10-24T22:14:10.6230938Z help: Consider removing this import.
2026-10-24T22:14:10.6230940Z
2026-10-24T22:14:10.6231189Z โ eslint(no-unused-vars): Identifier 'resolveMarkdownInlineCodePresentation' is imported but never used.
2026-10-24T22:14:10.6231317Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:197:3]
2026-10-24T22:14:10.6231390Z 196 โ normalizeNativeMarkdownUrl,
2026-10-24T22:14:10.6231480Z 197 โ resolveMarkdownInlineCodePresentation,
2026-10-24T22:14:10.6231587Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6231776Z ยท โฐโโ 'resolveMarkdownInlineCodePresentation' is imported here
2026-10-24T22:14:10.6231908Z 198 โ resolveMarkdownLinkPresentation,
2026-10-24T22:14:10.6231992Z โฐโโโโ
2026-10-24T22:14:10.6232080Z help: Consider removing this import.
2026-10-24T22:14:10.6232084Z
2026-10-24T22:14:10.6232304Z โ eslint(no-unused-vars): Identifier 'useMarkdownCodeHighlight' is imported but never used.
2026-10-24T22:14:10.6232430Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:242:10]
2026-10-24T22:14:10.6232528Z 241 โ import { ThreadMcpApp } from "./McpAppWebView";
2026-10-24T22:14:10.6232668Z 242 โ import { useMarkdownCodeHighlight } from "./markdownCodeHighlightState";
2026-10-24T22:14:10.6232763Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6232925Z ยท โฐโโ 'useMarkdownCodeHighlight' is imported here
2026-10-24T22:14:10.6232985Z 243 โ import {
2026-10-24T22:14:10.6233036Z โฐโโโโ
2026-10-24T22:14:10.6233125Z help: Consider removing this import.
2026-10-24T22:14:10.6233127Z
2026-10-24T22:14:10.6233331Z โ eslint(no-unused-vars): Identifier 'useAssetUrlState' is imported but never used.
2026-10-24T22:14:10.6233457Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:246:3]
2026-10-24T22:14:10.6233518Z 245 โ useAssetUrl,
2026-10-24T22:14:10.6233581Z 246 โ useAssetUrlState,
2026-10-24T22:14:10.6233657Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6233795Z ยท โฐโโ 'useAssetUrlState' is imported here
2026-10-24T22:14:10.6233861Z 247 โ useRefreshAssetUrl,
2026-10-24T22:14:10.6233908Z โฐโโโโ
2026-10-24T22:14:10.6233998Z help: Consider removing this import.
2026-10-24T22:14:10.6234000Z
2026-10-24T22:14:10.6234201Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6234333Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2197:7]
2026-10-24T22:14:10.6234403Z 2196 โ setExpandedFile(null);
2026-10-24T22:14:10.6234555Z 2197 โ }, [props.environmentId, props.threadId, props.contentPresentation.kind]);
2026-10-24T22:14:10.6234809Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโฌโโโโโโ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6235098Z ยท โ โ โฐโโ Unnecessary dependency `props.contentPresentation.kind`
2026-10-24T22:14:10.6235340Z ยท โ โฐโโ Unnecessary dependency `props.threadId`
2026-10-24T22:14:10.6235533Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-24T22:14:10.6235671Z 2198 โ const horizontalPadding = props.layoutVariant === "split" ? 20 : 16;
2026-10-24T22:14:10.6235719Z โฐโโโโ
2026-10-24T22:14:10.6236007Z 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-24T22:14:10.6236309Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6236311Z
2026-10-24T22:14:10.6236505Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6236640Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2669:7]
2026-10-24T22:14:10.6236737Z 2668 โ reportHeaderMaterialVisibility(false);
2026-10-24T22:14:10.6236846Z 2669 โ }, [feedThreadKey, reportHeaderMaterialVisibility]);
2026-10-24T22:14:10.6236925Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6237071Z ยท โฐโโ Unnecessary dependency `feedThreadKey`
2026-10-24T22:14:10.6237121Z 2670 โ
2026-10-24T22:14:10.6237168Z โฐโโโโ
2026-10-24T22:14:10.6237453Z 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-24T22:14:10.6237755Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6237757Z
2026-10-24T22:14:10.6237954Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6238088Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2685:7]
2026-10-24T22:14:10.6238140Z 2684 โ }
2026-10-24T22:14:10.6238267Z 2685 โ }, [listMountKey, props.contentInsetEndAdjustment, listRef]);
2026-10-24T22:14:10.6238343Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6238489Z ยท โฐโโ Unnecessary dependency `listMountKey`
2026-10-24T22:14:10.6238628Z 2686 โ // Opening at a message: its run unfolds, the list stops following the end
2026-10-24T22:14:10.6238678Z โฐโโโโ
2026-10-24T22:14:10.6238959Z 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-24T22:14:10.6239264Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6239268Z
2026-10-24T22:14:10.6239460Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6239595Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2881:7]
2026-10-24T22:14:10.6239650Z 2880 โ }
2026-10-24T22:14:10.6239826Z 2881 โ }, [expandedTurnIds, expandedWorkGroups, expandedWorkRows, settleDisclosureAfterLayout]);
2026-10-24T22:14:10.6240021Z ยท โโโโโโโโฌโโโโโโโ โโโโโโโโโโฌโโโโโโโโ โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6240316Z ยท โ โ โฐโโ Unnecessary dependency `expandedWorkRows`
2026-10-24T22:14:10.6240544Z ยท โ โฐโโ Unnecessary dependency `expandedWorkGroups`
2026-10-24T22:14:10.6240694Z ยท โฐโโ Unnecessary dependency `expandedTurnIds`
2026-10-24T22:14:10.6240744Z 2882 โ
2026-10-24T22:14:10.6240791Z โฐโโโโ
2026-10-24T22:14:10.6241074Z 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-24T22:14:10.6241377Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6241379Z
2026-10-24T22:14:10.6241560Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-24T22:14:10.6241694Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:627:9]
2026-10-24T22:14:10.6241748Z 626 โ };
2026-10-24T22:14:10.6241860Z 627 โ }, [props.environmentId, attachment.id, httpBaseUrl]),
2026-10-24T22:14:10.6242045Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ โโโโโโฌโโโโโ
2026-10-24T22:14:10.6242280Z ยท โ โ โฐโโ Unnecessary dependency `httpBaseUrl`
2026-10-24T22:14:10.6242469Z ยท โ โฐโโ Unnecessary dependency `attachment.id`
2026-10-24T22:14:10.6242627Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-24T22:14:10.6242687Z 628 โ );
2026-10-24T22:14:10.6242738Z โฐโโโโ
2026-10-24T22:14:10.6243043Z 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-24T22:14:10.6243344Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6243346Z
2026-10-24T22:14:10.6243599Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6243765Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:79:5]
2026-10-24T22:14:10.6243815Z 76 โ
2026-10-24T22:14:10.6243876Z 77 โ useEffect(() => {
2026-10-24T22:14:10.6243946Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6244075Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6244199Z 78 โ const { host, code } = parsePairingUrl(connectionPairingUrl);
2026-10-24T22:14:10.6244264Z 79 โ setHostInput(host);
2026-10-24T22:14:10.6244336Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6244497Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6244571Z 80 โ setCodeInput(code);
2026-10-24T22:14:10.6244619Z โฐโโโโ
2026-10-24T22:14:10.6245232Z 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-24T22:14:10.6245591Z 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-24T22:14:10.6245621Z
2026-10-24T22:14:10.6245871Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6246035Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:89:5]
2026-10-24T22:14:10.6246085Z 82 โ
2026-10-24T22:14:10.6246145Z 83 โ useEffect(() => {
2026-10-24T22:14:10.6246215Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6246335Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6246421Z 84 โ if (routePairingUrl.length === 0) {
2026-10-24T22:14:10.6246479Z 85 โ return;
2026-10-24T22:14:10.6246529Z 86 โ }
2026-10-24T22:14:10.6246581Z 87 โ
2026-10-24T22:14:10.6246698Z 88 โ const { host, code } = parsePairingUrl(routePairingUrl);
2026-10-24T22:14:10.6246760Z 89 โ setHostInput(host);
2026-10-24T22:14:10.6246832Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6246993Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6247056Z 90 โ setCodeInput(code);
2026-10-24T22:14:10.6247105Z โฐโโโโ
2026-10-24T22:14:10.6247684Z 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-24T22:14:10.6248004Z 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-24T22:14:10.6248008Z
2026-10-24T22:14:10.6248254Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6248417Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:95:7]
2026-10-24T22:14:10.6248468Z 92 โ
2026-10-24T22:14:10.6248528Z 93 โ useEffect(() => {
2026-10-24T22:14:10.6248594Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6248716Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6248796Z 94 โ if (pairingConnectionError) {
2026-10-24T22:14:10.6248866Z 95 โ setIsSubmitting(false);
2026-10-24T22:14:10.6248943Z ยท โโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6249151Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6249235Z 96 โ }
2026-10-24T22:14:10.6249283Z โฐโโโโ
2026-10-24T22:14:10.6249857Z 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-24T22:14:10.6250168Z 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-24T22:14:10.6250170Z
2026-10-24T22:14:10.6250401Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-24T22:14:10.6250537Z โญโ[apps/web/src/components/chat/useComposerSend.ts:985:13]
2026-10-24T22:14:10.6250657Z 984 โ const changedBeforeDecline = draftChangedSinceSend();
2026-10-24T22:14:10.6250892Z 985 โ โญโโถ const pendingIdsBeforeDecline = pendingApprovalsRef.current.map(
2026-10-24T22:14:10.6251009Z 986 โ โ (approval) => approval.requestId,
2026-10-24T22:14:10.6251139Z 987 โ โฐโโถ );
2026-10-24T22:14:10.6251273Z 988 โ const approvalResponding = approvalsToDecline.some((approval) =>
2026-10-24T22:14:10.6251320Z โฐโโโโ
2026-10-24T22:14:10.6251395Z help: Switch to `Set`
2026-10-24T22:14:10.6251397Z
2026-10-24T22:14:10.6251544Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6251694Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:152:27]
2026-10-24T22:14:10.6251865Z 151 โ <View ref={anchorRef} collapsable={false} className={props.className} style={props.style}>
2026-10-24T22:14:10.6251941Z 152 โ {props.children(open)}
2026-10-24T22:14:10.6252028Z ยท โโโฌโ
2026-10-24T22:14:10.6252182Z ยท โฐโโ Cannot access ref value during render
2026-10-24T22:14:10.6252242Z 153 โ </View>
2026-10-24T22:14:10.6252290Z โฐโโโโ
2026-10-24T22:14:10.6252746Z 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-24T22:14:10.6253034Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6253038Z
2026-10-24T22:14:10.6253228Z โ react(memo-dependencies): Found missing/extra memoization dependencies
2026-10-24T22:14:10.6253371Z โญโ[apps/mobile/src/components/ui/AndroidAnchoredMenu.tsx:140:9]
2026-10-24T22:14:10.6253450Z 139 โ if (action.id !== undefined) {
2026-10-24T22:14:10.6253525Z 140 โ props.onPressAction?.({
2026-10-24T22:14:10.6253595Z ยท โโโฌโโ
2026-10-24T22:14:10.6253720Z ยท โฐโโ Missing dependency `props`
2026-10-24T22:14:10.6253809Z 141 โ nativeEvent: { event: action.id },
2026-10-24T22:14:10.6253998Z 142 โ } as Parameters<NonNullable<MenuComponentProps["onPressAction"]>>[0]);
2026-10-24T22:14:10.6254081Z 143 โ }
2026-10-24T22:14:10.6254132Z 144 โ },
2026-10-24T22:14:10.6254210Z 145 โ [close, props.onPressAction],
2026-10-24T22:14:10.6254301Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6254509Z ยท โฐโโ Overly precise dependency `props.onPressAction`, use `props` instead
2026-10-24T22:14:10.6254571Z 146 โ );
2026-10-24T22:14:10.6254619Z โฐโโโโ
2026-10-24T22:14:10.6255113Z 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-24T22:14:10.6255424Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6255429Z
2026-10-24T22:14:10.6255705Z โ react(no-object-type-as-default-prop): Do not use an array literal as default prop value. Use a stable reference instead.
2026-10-24T22:14:10.6255857Z โญโ[apps/web/src/components/settings/SettingInheritance.tsx:163:24]
2026-10-24T22:14:10.6255911Z 162 โ keys,
2026-10-24T22:14:10.6255981Z 163 โ overridingProjects = [],
2026-10-24T22:14:10.6256062Z ยท โโ
2026-10-24T22:14:10.6256125Z 164 โ onClearOverrides,
2026-10-24T22:14:10.6256174Z โฐโโโโ
2026-10-24T22:14:10.6256484Z 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-24T22:14:10.6256486Z
2026-10-24T22:14:10.6256725Z โ eslint(no-unneeded-ternary): Unnecessary use of boolean literals in conditional expression
2026-10-24T22:14:10.6256848Z โญโ[packages/shared/src/serverSettings.test.ts:35:7]
2026-10-24T22:14:10.6257025Z 34 โ const fallback = fallbackTextGenerationModelSelection(providerInstances, (instanceId) =>
2026-10-24T22:14:10.6257116Z 35 โ instanceId === configured ? true : false,
2026-10-24T22:14:10.6257230Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6257281Z 36 โ );
2026-10-24T22:14:10.6257331Z โฐโโโโ
2026-10-24T22:14:10.6257422Z help: Remove this ternary operator
2026-10-24T22:14:10.6257425Z
2026-10-24T22:14:10.6257577Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6257735Z โญโ[apps/mobile/src/features/connection/ConnectionStatusDot.tsx:58:7]
2026-10-24T22:14:10.6257832Z 53 โ function usePulseAnimation(pulse: boolean) {
2026-10-24T22:14:10.6257924Z 54 โ const pulseProgress = useSharedValue(0);
2026-10-24T22:14:10.6258003Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6258138Z ยท โฐโโ `pulseProgress` originates here
2026-10-24T22:14:10.6258189Z 55 โ
2026-10-24T22:14:10.6258251Z 56 โ useEffect(() => {
2026-10-24T22:14:10.6258311Z 57 โ if (pulse) {
2026-10-24T22:14:10.6258395Z 58 โ pulseProgress.value = withRepeat(
2026-10-24T22:14:10.6258471Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6258608Z ยท โฐโโ `pulseProgress` cannot be modified
2026-10-24T22:14:10.6258674Z 59 โ withTiming(1, {
2026-10-24T22:14:10.6258723Z โฐโโโโ
2026-10-24T22:14:10.6259037Z 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-24T22:14:10.6259365Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6259368Z
2026-10-24T22:14:10.6259619Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6259753Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:68:5]
2026-10-24T22:14:10.6259853Z 66 โ const { id: attachmentId, fileUri } = attachment;
2026-10-24T22:14:10.6259915Z 67 โ useEffect(() => {
2026-10-24T22:14:10.6259982Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6260113Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6260176Z 68 โ setUri(null);
2026-10-24T22:14:10.6260244Z ยท โโโโฌโโ
2026-10-24T22:14:10.6260405Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6260465Z 69 โ setError(null);
2026-10-24T22:14:10.6260513Z โฐโโโโ
2026-10-24T22:14:10.6261102Z 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-24T22:14:10.6261417Z 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-24T22:14:10.6261423Z
2026-10-24T22:14:10.6261621Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6261753Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:91:7]
2026-10-24T22:14:10.6261804Z 90 โ };
2026-10-24T22:14:10.6261880Z 91 โ }, [attachmentId, fileUri]);
2026-10-24T22:14:10.6261996Z ยท โโโโโโโฌโโโโโ โโโโฌโโโ
2026-10-24T22:14:10.6262172Z ยท โ โฐโโ Unnecessary dependency `fileUri`
2026-10-24T22:14:10.6262316Z ยท โฐโโ Unnecessary dependency `attachmentId`
2026-10-24T22:14:10.6262447Z 92 โ const mimeType = videoMimeType(attachment) ?? attachment.mimeType;
2026-10-24T22:14:10.6262496Z โฐโโโโ
2026-10-24T22:14:10.6262791Z 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-24T22:14:10.6263138Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6263140Z
2026-10-24T22:14:10.6263349Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6263485Z โญโ[apps/mobile/src/components/VideoPreviewModal.tsx:213:34]
2026-10-24T22:14:10.6263548Z 212 โ useEffect(() => {
2026-10-24T22:14:10.6263657Z 213 โ if (!isFocused && hasSource) props.onRequestClose();
2026-10-24T22:14:10.6263755Z ยท โโโฌโโ
2026-10-24T22:14:10.6263965Z ยท โฐโโ Missing dependency `props`
2026-10-24T22:14:10.6264105Z 214 โ }, [isFocused, hasSource, props.onRequestClose]);
2026-10-24T22:14:10.6264213Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6264434Z ยท โฐโโ Overly precise dependency `props.onRequestClose`, use `props` instead
2026-10-24T22:14:10.6264504Z 215 โ const { source } = props;
2026-10-24T22:14:10.6264554Z โฐโโโโ
2026-10-24T22:14:10.6264991Z 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-24T22:14:10.6265300Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6265305Z
2026-10-24T22:14:10.6265513Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6265652Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:773:7]
2026-10-24T22:14:10.6265752Z 772 โ if (settingsSheetPresentation.isActive) {
2026-10-24T22:14:10.6265877Z 773 โ settingsRoutePresentation.present(settingsRouteSession);
2026-10-24T22:14:10.6265969Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6266136Z ยท โฐโโ Missing dependency `settingsRoutePresentation`
2026-10-24T22:14:10.6266188Z 774 โ }
2026-10-24T22:14:10.6266387Z 775 โ }, [settingsRoutePresentation.present, settingsRouteSession, settingsSheetPresentation.isActive]);
2026-10-24T22:14:10.6266499Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6266775Z ยท โฐโโ Overly precise dependency `settingsRoutePresentation.present`, use `settingsRoutePresentation` instead
2026-10-24T22:14:10.6266826Z 776 โ
2026-10-24T22:14:10.6266873Z โฐโโโโ
2026-10-24T22:14:10.6267282Z 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-24T22:14:10.6267586Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6267588Z
2026-10-24T22:14:10.6267742Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6267886Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:391:5]
2026-10-24T22:14:10.6268043Z 387 โ typeof props.style.borderRadius === "number" ? props.style.borderRadius : 0;
2026-10-24T22:14:10.6268175Z 388 โ const animatedBorderRadius = useSharedValue(targetBorderRadius);
2026-10-24T22:14:10.6268262Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6268412Z ยท โฐโโ `animatedBorderRadius` originates here
2026-10-24T22:14:10.6268563Z 389 โ const shouldAnimate = props.animateLayout !== false && Platform.OS !== "android";
2026-10-24T22:14:10.6268633Z 390 โ useLayoutEffect(() => {
2026-10-24T22:14:10.6268730Z 391 โ animatedBorderRadius.value = shouldAnimate
2026-10-24T22:14:10.6268814Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6269019Z ยท โฐโโ `animatedBorderRadius` cannot be modified
2026-10-24T22:14:10.6269135Z 392 โ ? withTiming(targetBorderRadius, {
2026-10-24T22:14:10.6269184Z โฐโโโโ
2026-10-24T22:14:10.6269443Z 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-24T22:14:10.6269741Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6269743Z
2026-10-24T22:14:10.6269993Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6270140Z โญโ[apps/mobile/src/components/VideoPreviewModal.ios.tsx:63:55]
2026-10-24T22:14:10.6270197Z 61 โ }, []);
2026-10-24T22:14:10.6270263Z 62 โ useEffect(() => {
2026-10-24T22:14:10.6270332Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6270460Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6270604Z 63 โ if (playbackUrl === null && resolvedUrl !== null) setPlaybackUrl(resolvedUrl);
2026-10-24T22:14:10.6270724Z ยท โโโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6270922Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6270998Z 64 โ }, [playbackUrl, resolvedUrl]);
2026-10-24T22:14:10.6271046Z โฐโโโโ
2026-10-24T22:14:10.6271638Z 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-24T22:14:10.6271952Z 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-24T22:14:10.6271955Z
2026-10-24T22:14:10.6272163Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-24T22:14:10.6272265Z โญโ[apps/mobile/src/Stack.tsx:1079:21]
2026-10-24T22:14:10.6272327Z 1078 โ <Navigator
2026-10-24T22:14:10.6272456Z 1079 โ screenLayout={(props) => <GuardedScreenLayout {...props} />}
2026-10-24T22:14:10.6272587Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6272670Z 1080 โ screenOptions={({ route }) =>
2026-10-24T22:14:10.6272768Z โฐโโโโ
2026-10-24T22:14:10.6273153Z help: Move this component definition out of the parent component `AdaptiveRootStack` and pass data as props. If you want to allow component creation in props, set `allowAsProps` option to true.
2026-10-24T22:14:10.6273156Z
2026-10-24T22:14:10.6273383Z โ eslint(no-unused-vars): Function 'assertUserMessagesExclude' is declared but never used.
2026-10-24T22:14:10.6273541Z โญโ[apps/server/src/orchestration-v2/testkit/fixtures/shared.ts:1398:10]
2026-10-24T22:14:10.6273593Z 1397 โ
2026-10-24T22:14:10.6273676Z 1398 โ function assertUserMessagesExclude(
2026-10-24T22:14:10.6273776Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6273939Z ยท โฐโโ 'assertUserMessagesExclude' is declared here
2026-10-24T22:14:10.6274051Z 1399 โ projection: OrchestrationV2ThreadProjection,
2026-10-24T22:14:10.6274104Z โฐโโโโ
2026-10-24T22:14:10.6274205Z help: Consider removing this declaration.
2026-10-24T22:14:10.6274208Z
2026-10-24T22:14:10.6274457Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6274631Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:406:5]
2026-10-24T22:14:10.6274683Z 404 โ
2026-10-24T22:14:10.6274747Z 405 โ useEffect(() => {
2026-10-24T22:14:10.6274815Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6274941Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6275029Z 406 โ setInspectorSelection((current) => {
2026-10-24T22:14:10.6275114Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6275285Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6275385Z 407 โ if (props.renderInspector === undefined) {
2026-10-24T22:14:10.6275433Z โฐโโโโ
2026-10-24T22:14:10.6276019Z 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-24T22:14:10.6276331Z 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-24T22:14:10.6276335Z
2026-10-24T22:14:10.6276547Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-24T22:14:10.6276698Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:534:24]
2026-10-24T22:14:10.6276852Z 533 โ const inspectorHeaderInset = Platform.OS === "ios" ? 0 : safeAreaInsets.top;
2026-10-24T22:14:10.6277020Z 534 โ โญโโถ const GitInspector = () => (
2026-10-24T22:14:10.6277112Z 535 โ โ <GitOverviewSheet
2026-10-24T22:14:10.6277229Z 536 โ โ headerInset={inspectorHeaderInset}
2026-10-24T22:14:10.6277333Z 537 โ โ presentation="inspector"
2026-10-24T22:14:10.6277508Z 538 โ โ route={{ params: { environmentId: environmentId!, threadId: threadId! } }}
2026-10-24T22:14:10.6277580Z 539 โ โ />
2026-10-24T22:14:10.6277759Z 540 โ โฐโโถ );
2026-10-24T22:14:10.6277865Z 541 โ const FilesInspector = () =>
2026-10-24T22:14:10.6277913Z โฐโโโโ
2026-10-24T22:14:10.6278126Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-24T22:14:10.6278128Z
2026-10-24T22:14:10.6278335Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-24T22:14:10.6278485Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:541:26]
2026-10-24T22:14:10.6278540Z 540 โ );
2026-10-24T22:14:10.6278702Z 541 โ โญโโถ const FilesInspector = () =>
2026-10-24T22:14:10.6278851Z 542 โ โ selectedThread !== null && selectedThreadCwd !== null ? (
2026-10-24T22:14:10.6278963Z 543 โ โ <ThreadFileNavigatorPane
2026-10-24T22:14:10.6279072Z 544 โ โ cwd={selectedThreadCwd}
2026-10-24T22:14:10.6279208Z 545 โ โ environmentId={selectedThread.environmentId}
2026-10-24T22:14:10.6279326Z 546 โ โ headerInset={inspectorHeaderInset}
2026-10-24T22:14:10.6279471Z 547 โ โ projectName={selectedThreadProject?.title ?? "Files"}
2026-10-24T22:14:10.6279570Z 548 โ โ selectedPath={null}
2026-10-24T22:14:10.6279698Z 549 โ โ onSelectFile={handleSelectInspectorFile}
2026-10-24T22:14:10.6279771Z 550 โ โ />
2026-10-24T22:14:10.6279908Z 551 โ โฐโโถ ) : null;
2026-10-24T22:14:10.6280060Z 552 โ const RouteInspector = () => props.renderInspector?.(inspectorHeaderInset);
2026-10-24T22:14:10.6280111Z โฐโโโโ
2026-10-24T22:14:10.6280321Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-24T22:14:10.6280324Z
2026-10-24T22:14:10.6280535Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6280702Z โญโ[apps/mobile/src/features/threads/NewTaskContextPickerScreens.tsx:249:7]
2026-10-24T22:14:10.6280779Z 248 โ mountedRef.current = false;
2026-10-24T22:14:10.6280852Z 249 โ flow.setBranchQuery("");
2026-10-24T22:14:10.6280920Z ยท โโโฌโ
2026-10-24T22:14:10.6281046Z ยท โฐโโ Missing dependency `flow`
2026-10-24T22:14:10.6281099Z 250 โ };
2026-10-24T22:14:10.6281174Z 251 โ }, [flow.setBranchQuery]);
2026-10-24T22:14:10.6281262Z ยท โโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6281461Z ยท โฐโโ Overly precise dependency `flow.setBranchQuery`, use `flow` instead
2026-10-24T22:14:10.6281511Z 252 โ
2026-10-24T22:14:10.6281558Z โฐโโโโ
2026-10-24T22:14:10.6281970Z 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-24T22:14:10.6282276Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6282279Z
2026-10-24T22:14:10.6282479Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6282670Z โญโ[apps/mobile/src/features/threads/floating-working-control.tsx:111:5]
2026-10-24T22:14:10.6282721Z 107 โ );
2026-10-24T22:14:10.6282872Z 108 โ const separationProgress = useSharedValue(props.showScrollToEnd ? 1 : 0);
2026-10-24T22:14:10.6282958Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6283105Z ยท โฐโโ `separationProgress` originates here
2026-10-24T22:14:10.6283154Z 109 โ
2026-10-24T22:14:10.6283217Z 110 โ useEffect(() => {
2026-10-24T22:14:10.6283387Z 111 โ separationProgress.value = withTiming(props.showScrollToEnd ? 1 : 0, CONTROL_TIMING);
2026-10-24T22:14:10.6283469Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6283617Z ยท โฐโโ `separationProgress` cannot be modified
2026-10-24T22:14:10.6283727Z 112 โ }, [props.showScrollToEnd, separationProgress]);
2026-10-24T22:14:10.6283779Z โฐโโโโ
2026-10-24T22:14:10.6284037Z 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-24T22:14:10.6284334Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6284337Z
2026-10-24T22:14:10.6284488Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6284671Z โญโ[apps/mobile/src/features/threads/floating-working-control.tsx:138:5]
2026-10-24T22:14:10.6284780Z 128 โ // and repeatedly retargets the animation as it grows.
2026-10-24T22:14:10.6284891Z 129 โ const capsuleWidth = useSharedValue<number | null>(null);
2026-10-24T22:14:10.6284973Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6285107Z ยท โฐโโ `capsuleWidth` originates here
2026-10-24T22:14:10.6285214Z 130 โ const measuredWidthRef = useRef<number | null>(null);
2026-10-24T22:14:10.6285324Z 131 โ const handleLabelLayout = (event: LayoutChangeEvent) => {
2026-10-24T22:14:10.6285426Z 132 โ const width = event.nativeEvent.layout.width;
2026-10-24T22:14:10.6285519Z 133 โ if (width === measuredWidthRef.current) {
2026-10-24T22:14:10.6285580Z 134 โ return;
2026-10-24T22:14:10.6285631Z 135 โ }
2026-10-24T22:14:10.6285733Z 136 โ const first = measuredWidthRef.current === null;
2026-10-24T22:14:10.6285818Z 137 โ measuredWidthRef.current = width;
2026-10-24T22:14:10.6285956Z 138 โ capsuleWidth.value = first ? width : withTiming(width, CONTROL_TIMING);
2026-10-24T22:14:10.6286036Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6286176Z ยท โฐโโ `capsuleWidth` cannot be modified
2026-10-24T22:14:10.6286229Z 139 โ };
2026-10-24T22:14:10.6286279Z โฐโโโโ
2026-10-24T22:14:10.6286535Z 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-24T22:14:10.6286832Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6286835Z
2026-10-24T22:14:10.6286986Z โ react(immutability): This value cannot be modified
2026-10-24T22:14:10.6287145Z โญโ[apps/mobile/src/features/threads/floating-working-control.tsx:145:7]
2026-10-24T22:14:10.6287304Z 128 โ // and repeatedly retargets the animation as it grows.
2026-10-24T22:14:10.6287450Z 129 โ const capsuleWidth = useSharedValue<number | null>(null);
2026-10-24T22:14:10.6287529Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6287664Z ยท โฐโโ `capsuleWidth` originates here
2026-10-24T22:14:10.6287769Z 130 โ const measuredWidthRef = useRef<number | null>(null);
2026-10-24T22:14:10.6287879Z 131 โ const handleLabelLayout = (event: LayoutChangeEvent) => {
2026-10-24T22:14:10.6287980Z 132 โ const width = event.nativeEvent.layout.width;
2026-10-24T22:14:10.6288072Z 133 โ if (width === measuredWidthRef.current) {
2026-10-24T22:14:10.6288130Z 134 โ return;
2026-10-24T22:14:10.6288181Z 135 โ }
2026-10-24T22:14:10.6288282Z 136 โ const first = measuredWidthRef.current === null;
2026-10-24T22:14:10.6288364Z 137 โ measuredWidthRef.current = width;
2026-10-24T22:14:10.6288506Z 138 โ capsuleWidth.value = first ? width : withTiming(width, CONTROL_TIMING);
2026-10-24T22:14:10.6288558Z 139 โ };
2026-10-24T22:14:10.6288646Z 140 โ const hasStatus = props.status !== null;
2026-10-24T22:14:10.6288774Z 141 โ const hasCapsule = hasStatus || hasQueue || hasAgents || hasPreview;
2026-10-24T22:14:10.6288836Z 142 โ useEffect(() => {
2026-10-24T22:14:10.6288900Z 143 โ if (!hasStatus) {
2026-10-24T22:14:10.6288984Z 144 โ measuredWidthRef.current = null;
2026-10-24T22:14:10.6289059Z 145 โ capsuleWidth.value = null;
2026-10-24T22:14:10.6289132Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6289272Z ยท โฐโโ `capsuleWidth` cannot be modified
2026-10-24T22:14:10.6289324Z 146 โ }
2026-10-24T22:14:10.6289373Z โฐโโโโ
2026-10-24T22:14:10.6289635Z 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-24T22:14:10.6289937Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6289940Z
2026-10-24T22:14:10.6290135Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T22:14:10.6290297Z โญโ[apps/mobile/src/features/threads/floating-working-control.tsx:145:7]
2026-10-24T22:14:10.6290426Z 141 โ const hasCapsule = hasStatus || hasQueue || hasAgents || hasPreview;
2026-10-24T22:14:10.6290488Z 142 โ useEffect(() => {
2026-10-24T22:14:10.6290564Z ยท โโโโฌโโโ
2026-10-24T22:14:10.6290784Z ยท โฐโโ This function may (indirectly) reassign or modify `capsuleWidth` after render
2026-10-24T22:14:10.6290850Z 143 โ if (!hasStatus) {
2026-10-24T22:14:10.6290934Z 144 โ measuredWidthRef.current = null;
2026-10-24T22:14:10.6291007Z 145 โ capsuleWidth.value = null;
2026-10-24T22:14:10.6291081Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6291214Z ยท โฐโโ This modifies `capsuleWidth`
2026-10-24T22:14:10.6291266Z 146 โ }
2026-10-24T22:14:10.6291316Z โฐโโโโ
2026-10-24T22:14:10.6291653Z help: This argument is a function which may reassign or mutate `capsuleWidth` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T22:14:10.6291950Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6292001Z
2026-10-24T22:14:10.6292222Z โ react(immutability): Cannot modify local variables after render completes
2026-10-24T22:14:10.6292381Z โญโ[apps/mobile/src/features/threads/floating-working-control.tsx:138:5]
2026-10-24T22:14:10.6292489Z 130 โ const measuredWidthRef = useRef<number | null>(null);
2026-10-24T22:14:10.6292602Z 131 โ const handleLabelLayout = (event: LayoutChangeEvent) => {
2026-10-24T22:14:10.6292721Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6292956Z ยท โฐโโ This function may (indirectly) reassign or modify `capsuleWidth` after render
2026-10-24T22:14:10.6293060Z 132 โ const width = event.nativeEvent.layout.width;
2026-10-24T22:14:10.6293159Z 133 โ if (width === measuredWidthRef.current) {
2026-10-24T22:14:10.6293220Z 134 โ return;
2026-10-24T22:14:10.6293270Z 135 โ }
2026-10-24T22:14:10.6293371Z 136 โ const first = measuredWidthRef.current === null;
2026-10-24T22:14:10.6293455Z 137 โ measuredWidthRef.current = width;
2026-10-24T22:14:10.6293590Z 138 โ capsuleWidth.value = first ? width : withTiming(width, CONTROL_TIMING);
2026-10-24T22:14:10.6293664Z ยท โโโโโโโฌโโโโโ
2026-10-24T22:14:10.6293793Z ยท โฐโโ This modifies `capsuleWidth`
2026-10-24T22:14:10.6293846Z 139 โ };
2026-10-24T22:14:10.6293894Z โฐโโโโ
2026-10-24T22:14:10.6294228Z help: This argument is a function which may reassign or mutate `capsuleWidth` after render, which can cause inconsistent behavior on subsequent renders. Consider using state instead
2026-10-24T22:14:10.6294532Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-24T22:14:10.6294538Z
2026-10-24T22:14:10.6294738Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6294859Z โญโ[apps/web/src/hooks/useThreadActions.ts:821:56]
2026-10-24T22:14:10.6294956Z 820 โ const resolved = resolveThreadTarget(target);
2026-10-24T22:14:10.6295108Z 821 โ if (resolved && !canSnooze(resolved.thread, { now: new Date().toISOString() })) {
2026-10-24T22:14:10.6295226Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6295391Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6295468Z 822 โ return AsyncResult.failure(
2026-10-24T22:14:10.6295561Z โฐโโโโ
2026-10-24T22:14:10.6295865Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6296154Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6296157Z
2026-10-24T22:14:10.6296319Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6296435Z โญโ[apps/web/src/hooks/useThreadActions.ts:709:46]
2026-10-24T22:14:10.6296506Z 708 โ const wokeAt = resolved
2026-10-24T22:14:10.6296638Z 709 โ ? threadWokeAt(resolved.thread, { now: new Date().toISOString() })
2026-10-24T22:14:10.6296747Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6296907Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6296967Z 710 โ : null;
2026-10-24T22:14:10.6297015Z โฐโโโโ
2026-10-24T22:14:10.6297287Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6297573Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6297576Z
2026-10-24T22:14:10.6297773Z โ typescript(no-this-alias): Unexpected aliasing of 'this' to local variable.
2026-10-24T22:14:10.6297892Z โญโ[apps/web/src/contextMenuFallback.test.ts:38:9]
2026-10-24T22:14:10.6297957Z 37 โ get isConnected() {
2026-10-24T22:14:10.6298048Z 38 โ let current: FakeElement | null = this;
2026-10-24T22:14:10.6298122Z ยท โโโโโโโ
2026-10-24T22:14:10.6298191Z 39 โ while (current?.parent) {
2026-10-24T22:14:10.6298240Z โฐโโโโ
2026-10-24T22:14:10.6298506Z 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-24T22:14:10.6298510Z
2026-10-24T22:14:10.6298803Z โ eslint(no-unused-vars): Variable 'layerFromProviderAdapter' is declared but never used. Unused variables should start with a '_'.
2026-10-24T22:14:10.6298963Z โญโ[apps/server/src/orchestration-v2/ProviderAdapterRegistry.ts:346:7]
2026-10-24T22:14:10.6299015Z 345 โ
2026-10-24T22:14:10.6299115Z 346 โ const layerFromProviderAdapter: Layer.Layer<
2026-10-24T22:14:10.6299210Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6299374Z ยท โฐโโ 'layerFromProviderAdapter' is declared here
2026-10-24T22:14:10.6299447Z 347 โ ProviderAdapterRegistryV2,
2026-10-24T22:14:10.6299495Z โฐโโโโ
2026-10-24T22:14:10.6299596Z help: Consider removing this declaration.
2026-10-24T22:14:10.6299599Z
2026-10-24T22:14:10.6299789Z โ eslint(no-unused-vars): Identifier 'Image' is imported but never used.
2026-10-24T22:14:10.6299928Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:17:10]
2026-10-24T22:14:10.6300062Z 16 โ import type { NativeSyntheticEvent, ViewProps } from "react-native";
2026-10-24T22:14:10.6300172Z 17 โ import { Image, Platform, StyleSheet } from "react-native";
2026-10-24T22:14:10.6300242Z ยท โโโฌโโ
2026-10-24T22:14:10.6300414Z ยท โฐโโ 'Image' is imported here
2026-10-24T22:14:10.6300495Z 18 โ
2026-10-24T22:14:10.6300542Z โฐโโโโ
2026-10-24T22:14:10.6300637Z help: Consider removing this import.
2026-10-24T22:14:10.6300640Z
2026-10-24T22:14:10.6300838Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T22:14:10.6300975Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:229:6]
2026-10-24T22:14:10.6301136Z 225 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-24T22:14:10.6301225Z 226 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6301315Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6301772Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6301843Z 227 โ mostRecentEventCount,
2026-10-24T22:14:10.6301896Z 228 โ );
2026-10-24T22:14:10.6302017Z 229 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-24T22:14:10.6302147Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6302341Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6302423Z 230 โ const assumedValue = props.value;
2026-10-24T22:14:10.6302471Z โฐโโโโ
2026-10-24T22:14:10.6302637Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T22:14:10.6303156Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6303162Z
2026-10-24T22:14:10.6303373Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6303512Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:237:7]
2026-10-24T22:14:10.6303654Z 236 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-24T22:14:10.6303741Z 237 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6303829Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6304278Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6304353Z 238 โ controlledEventCount,
2026-10-24T22:14:10.6304418Z 239 โ assumedValue,
2026-10-24T22:14:10.6304470Z 240 โ );
2026-10-24T22:14:10.6304654Z 241 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-24T22:14:10.6304790Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6304997Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-24T22:14:10.6305085Z 242 โ const acceptNativeEvent = useCallback(
2026-10-24T22:14:10.6305133Z โฐโโโโ
2026-10-24T22:14:10.6305614Z 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-24T22:14:10.6305958Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6305961Z
2026-10-24T22:14:10.6306102Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6306242Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:29]
2026-10-24T22:14:10.6306362Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6306471Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6306588Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6306752Z ยท โฐโโ Cannot access ref value during render
2026-10-24T22:14:10.6306812Z 163 โ });
2026-10-24T22:14:10.6306864Z โฐโโโโ
2026-10-24T22:14:10.6307324Z 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-24T22:14:10.6307610Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6307613Z
2026-10-24T22:14:10.6307754Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6307895Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:29]
2026-10-24T22:14:10.6308015Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6308130Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6308243Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6308446Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6308502Z 163 โ });
2026-10-24T22:14:10.6308550Z โฐโโโโ
2026-10-24T22:14:10.6309004Z 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-24T22:14:10.6309290Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6309292Z
2026-10-24T22:14:10.6309439Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6309580Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:164:23]
2026-10-24T22:14:10.6309636Z 163 โ });
2026-10-24T22:14:10.6309723Z 164 โ confirmedTokensRef.current = tokens;
2026-10-24T22:14:10.6309845Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-24T22:14:10.6310030Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T22:14:10.6310145Z ยท โฐโโ This value is a ref
2026-10-24T22:14:10.6310212Z 165 โ return JSON.stringify(
2026-10-24T22:14:10.6310260Z โฐโโโโ
2026-10-24T22:14:10.6310763Z 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-24T22:14:10.6311072Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6311074Z
2026-10-24T22:14:10.6311214Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6311351Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:206:5]
2026-10-24T22:14:10.6311421Z 205 โ mostRecentEventCount,
2026-10-24T22:14:10.6311506Z 206 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6311609Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6311797Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6311854Z 207 โ );
2026-10-24T22:14:10.6311905Z โฐโโโโ
2026-10-24T22:14:10.6312364Z 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-24T22:14:10.6312650Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6312655Z
2026-10-24T22:14:10.6312794Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6312933Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:212:5]
2026-10-24T22:14:10.6313001Z 211 โ mostRecentEventCount,
2026-10-24T22:14:10.6313088Z 212 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6313190Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6313373Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6313424Z 213 โ );
2026-10-24T22:14:10.6313473Z โฐโโโโ
2026-10-24T22:14:10.6313928Z 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-24T22:14:10.6314212Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6314214Z
2026-10-24T22:14:10.6314442Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T22:14:10.6314619Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:197:6]
2026-10-24T22:14:10.6314760Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6314871Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6314977Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6315437Z ยท โฐโโ Missing dependency `confirmedTokensRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6315490Z 163 โ });
2026-10-24T22:14:10.6315576Z 164 โ confirmedTokensRef.current = tokens;
2026-10-24T22:14:10.6315646Z 165 โ return JSON.stringify(
2026-10-24T22:14:10.6315811Z 166 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-24T22:14:10.6315879Z 167 โ const record =
2026-10-24T22:14:10.6315954Z 168 โ token.type === "context"
2026-10-24T22:14:10.6316115Z 169 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-24T22:14:10.6316178Z 170 โ : undefined;
2026-10-24T22:14:10.6316283Z 171 โ const presentation = contextChipPresentation(
2026-10-24T22:14:10.6316386Z 172 โ token.type === "context" ? token.kind : token.type,
2026-10-24T22:14:10.6316446Z 173 โ record,
2026-10-24T22:14:10.6316504Z 174 โ );
2026-10-24T22:14:10.6316585Z 175 โ const icon = contextChipIcon(
2026-10-24T22:14:10.6316647Z 176 โ presentation,
2026-10-24T22:14:10.6316791Z 177 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-24T22:14:10.6316849Z 178 โ );
2026-10-24T22:14:10.6316908Z 179 โ return {
2026-10-24T22:14:10.6316977Z 180 โ type: token.type,
2026-10-24T22:14:10.6317050Z 181 โ source: token.source,
2026-10-24T22:14:10.6317118Z 182 โ start: token.start,
2026-10-24T22:14:10.6317181Z 183 โ end: token.end,
2026-10-24T22:14:10.6317327Z 184 โ accent: contextChipAccent(presentation.accent, theme, chipTextColor),
2026-10-24T22:14:10.6317385Z 185 โ label:
2026-10-24T22:14:10.6317460Z 186 โ token.type === "skill"
2026-10-24T22:14:10.6317562Z 187 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-24T22:14:10.6317642Z 188 โ : token.type === "context"
2026-10-24T22:14:10.6317881Z 189 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-24T22:14:10.6317962Z 190 โ : basename(token.value),
2026-10-24T22:14:10.6318099Z 191 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-24T22:14:10.6318192Z 192 โ iconUri: contextChipIconUri(icon),
2026-10-24T22:14:10.6318278Z 193 โ tintsIcon: icon.kind === "chip",
2026-10-24T22:14:10.6318333Z 194 โ };
2026-10-24T22:14:10.6318387Z 195 โ }),
2026-10-24T22:14:10.6318442Z 196 โ );
2026-10-24T22:14:10.6318572Z 197 โ }, [props.value, props.context, skillLabels, theme, chipTextColor]);
2026-10-24T22:14:10.6318719Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6318970Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6319149Z 198 โ // Every render resolves against the snapshot history, so a render whose
2026-10-24T22:14:10.6319198Z โฐโโโโ
2026-10-24T22:14:10.6319400Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T22:14:10.6319706Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6319710Z
2026-10-24T22:14:10.6319893Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T22:14:10.6320031Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:259:5]
2026-10-24T22:14:10.6320156Z 251 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-24T22:14:10.6320259Z 252 โ nativeEventSnapshotsRef.current.push({
2026-10-24T22:14:10.6320349Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6320801Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6322069Z 253 โ eventCount: acknowledgedEventCount,
2026-10-24T22:14:10.6322137Z 254 โ value,
2026-10-24T22:14:10.6322213Z 255 โ selection: nextSelection,
2026-10-24T22:14:10.6322269Z 256 โ });
2026-10-24T22:14:10.6322349Z 257 โ return acknowledgedEventCount;
2026-10-24T22:14:10.6322400Z 258 โ },
2026-10-24T22:14:10.6322451Z 259 โ [],
2026-10-24T22:14:10.6322516Z ยท โโฌ
2026-10-24T22:14:10.6322705Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6322762Z 260 โ );
2026-10-24T22:14:10.6322810Z โฐโโโโ
2026-10-24T22:14:10.6323011Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T22:14:10.6323317Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6323320Z
2026-10-24T22:14:10.6323518Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T22:14:10.6323651Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:231:6]
2026-10-24T22:14:10.6323811Z 227 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-24T22:14:10.6323902Z 228 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6323993Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6324439Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6324510Z 229 โ mostRecentEventCount,
2026-10-24T22:14:10.6324593Z 230 โ );
2026-10-24T22:14:10.6324712Z 231 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-24T22:14:10.6324842Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6325036Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6325115Z 232 โ const assumedValue = props.value;
2026-10-24T22:14:10.6325229Z โฐโโโโ
2026-10-24T22:14:10.6325423Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T22:14:10.6325725Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6325727Z
2026-10-24T22:14:10.6325936Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-24T22:14:10.6326068Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:239:7]
2026-10-24T22:14:10.6326208Z 238 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-24T22:14:10.6326293Z 239 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6326380Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6326831Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6326902Z 240 โ controlledEventCount,
2026-10-24T22:14:10.6326964Z 241 โ assumedValue,
2026-10-24T22:14:10.6327016Z 242 โ );
2026-10-24T22:14:10.6327171Z 243 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-24T22:14:10.6327305Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-24T22:14:10.6327510Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-24T22:14:10.6327594Z 244 โ const acceptNativeEvent = useCallback(
2026-10-24T22:14:10.6327648Z โฐโโโโ
2026-10-24T22:14:10.6328064Z 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-24T22:14:10.6328369Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6328372Z
2026-10-24T22:14:10.6328511Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6328644Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:29]
2026-10-24T22:14:10.6328763Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6328871Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6328987Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6329152Z ยท โฐโโ Cannot access ref value during render
2026-10-24T22:14:10.6329205Z 165 โ });
2026-10-24T22:14:10.6329253Z โฐโโโโ
2026-10-24T22:14:10.6329711Z 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-24T22:14:10.6329996Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6329998Z
2026-10-24T22:14:10.6330186Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6330347Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:29]
2026-10-24T22:14:10.6330464Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6330570Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6330683Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6330886Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6330939Z 165 โ });
2026-10-24T22:14:10.6330985Z โฐโโโโ
2026-10-24T22:14:10.6331444Z 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-24T22:14:10.6331729Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6331731Z
2026-10-24T22:14:10.6331871Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6332002Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:166:23]
2026-10-24T22:14:10.6332053Z 165 โ });
2026-10-24T22:14:10.6332139Z 166 โ confirmedTokensRef.current = tokens;
2026-10-24T22:14:10.6332258Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-24T22:14:10.6332444Z ยท โ โฐโโ Cannot update ref value during render
2026-10-24T22:14:10.6332559Z ยท โฐโโ This value is a ref
2026-10-24T22:14:10.6332630Z 167 โ return JSON.stringify(
2026-10-24T22:14:10.6332679Z โฐโโโโ
2026-10-24T22:14:10.6333132Z 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-24T22:14:10.6333414Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6333416Z
2026-10-24T22:14:10.6333554Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6333684Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:208:5]
2026-10-24T22:14:10.6333752Z 207 โ mostRecentEventCount,
2026-10-24T22:14:10.6333881Z 208 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6334011Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6334194Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6334246Z 209 โ );
2026-10-24T22:14:10.6334294Z โฐโโโโ
2026-10-24T22:14:10.6334775Z 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-24T22:14:10.6335059Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6335061Z
2026-10-24T22:14:10.6335204Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6335338Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:214:5]
2026-10-24T22:14:10.6335406Z 213 โ mostRecentEventCount,
2026-10-24T22:14:10.6335489Z 214 โ nativeEventSnapshotsRef.current,
2026-10-24T22:14:10.6335588Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6335769Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6335823Z 215 โ );
2026-10-24T22:14:10.6335872Z โฐโโโโ
2026-10-24T22:14:10.6336327Z 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-24T22:14:10.6336618Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6336623Z
2026-10-24T22:14:10.6336805Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T22:14:10.6336934Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:199:6]
2026-10-24T22:14:10.6337051Z 163 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-24T22:14:10.6337159Z 164 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-24T22:14:10.6337264Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-24T22:14:10.6337721Z ยท โฐโโ Missing dependency `confirmedTokensRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6337775Z 165 โ });
2026-10-24T22:14:10.6337862Z 166 โ confirmedTokensRef.current = tokens;
2026-10-24T22:14:10.6337928Z 167 โ return JSON.stringify(
2026-10-24T22:14:10.6338086Z 168 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-24T22:14:10.6338148Z 169 โ const record =
2026-10-24T22:14:10.6338225Z 170 โ token.type === "context"
2026-10-24T22:14:10.6338385Z 171 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-24T22:14:10.6338448Z 172 โ : undefined;
2026-10-24T22:14:10.6338551Z 173 โ const presentation = contextChipPresentation(
2026-10-24T22:14:10.6338656Z 174 โ token.type === "context" ? token.kind : token.type,
2026-10-24T22:14:10.6338715Z 175 โ record,
2026-10-24T22:14:10.6338822Z 176 โ );
2026-10-24T22:14:10.6338991Z 177 โ const icon = contextChipIcon(
2026-10-24T22:14:10.6339055Z 178 โ presentation,
2026-10-24T22:14:10.6339192Z 179 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-24T22:14:10.6339247Z 180 โ );
2026-10-24T22:14:10.6339305Z 181 โ return {
2026-10-24T22:14:10.6339373Z 182 โ type: token.type,
2026-10-24T22:14:10.6339445Z 183 โ source: token.source,
2026-10-24T22:14:10.6339513Z 184 โ start: token.start,
2026-10-24T22:14:10.6339576Z 185 โ end: token.end,
2026-10-24T22:14:10.6339719Z 186 โ accent: contextChipAccent(presentation.accent, theme, chipTextColor),
2026-10-24T22:14:10.6339776Z 187 โ label:
2026-10-24T22:14:10.6339850Z 188 โ token.type === "skill"
2026-10-24T22:14:10.6339957Z 189 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-24T22:14:10.6340037Z 190 โ : token.type === "context"
2026-10-24T22:14:10.6340266Z 191 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-24T22:14:10.6340344Z 192 โ : basename(token.value),
2026-10-24T22:14:10.6340482Z 193 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-24T22:14:10.6340572Z 194 โ iconUri: contextChipIconUri(icon),
2026-10-24T22:14:10.6340656Z 195 โ tintsIcon: icon.kind === "chip",
2026-10-24T22:14:10.6340710Z 196 โ };
2026-10-24T22:14:10.6340764Z 197 โ }),
2026-10-24T22:14:10.6340815Z 198 โ );
2026-10-24T22:14:10.6340945Z 199 โ }, [props.value, props.context, skillLabels, theme, chipTextColor]);
2026-10-24T22:14:10.6341096Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6341299Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6341434Z 200 โ // Every render resolves against the snapshot history, so a render whose
2026-10-24T22:14:10.6341483Z โฐโโโโ
2026-10-24T22:14:10.6341683Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T22:14:10.6341988Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6341991Z
2026-10-24T22:14:10.6342172Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-24T22:14:10.6342309Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:261:5]
2026-10-24T22:14:10.6342437Z 253 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-24T22:14:10.6342533Z 254 โ nativeEventSnapshotsRef.current.push({
2026-10-24T22:14:10.6342622Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6343137Z ยท โฐโโ Missing dependency `nativeEventSnapshotsRef`. Refs, setState functions, and other "stable" values generally do not need to be added as dependencies, but this variable may change over time to point to different values
2026-10-24T22:14:10.6343225Z 255 โ eventCount: acknowledgedEventCount,
2026-10-24T22:14:10.6343283Z 256 โ value,
2026-10-24T22:14:10.6343358Z 257 โ selection: nextSelection,
2026-10-24T22:14:10.6343413Z 258 โ });
2026-10-24T22:14:10.6343561Z 259 โ return acknowledgedEventCount;
2026-10-24T22:14:10.6343654Z 260 โ },
2026-10-24T22:14:10.6343706Z 261 โ [],
2026-10-24T22:14:10.6343770Z ยท โโฌ
2026-10-24T22:14:10.6343946Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6343996Z 262 โ );
2026-10-24T22:14:10.6344044Z โฐโโโโ
2026-10-24T22:14:10.6344242Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-24T22:14:10.6344545Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6344548Z
2026-10-24T22:14:10.6344801Z โ eslint(no-unused-vars): Type 'EnvironmentThreadSearchMatch' is imported but never used.
2026-10-24T22:14:10.6344932Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:15:8]
2026-10-24T22:14:10.6345001Z 14 โ threadSearchMatchKey,
2026-10-24T22:14:10.6345083Z 15 โ type EnvironmentThreadSearchMatch,
2026-10-24T22:14:10.6345184Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
2026-10-24T22:14:10.6345354Z ยท โฐโโ 'EnvironmentThreadSearchMatch' is imported here
2026-10-24T22:14:10.6345460Z 16 โ } from "@t3tools/client-runtime/state/thread-search";
2026-10-24T22:14:10.6345509Z โฐโโโโ
2026-10-24T22:14:10.6345602Z help: Consider removing this import.
2026-10-24T22:14:10.6345606Z
2026-10-24T22:14:10.6345801Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-24T22:14:10.6345927Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:527:25]
2026-10-24T22:14:10.6346059Z 526 โ // range) the boundary string is identical and the chain would die.
2026-10-24T22:14:10.6346147Z 527 โ }, [nextSnoozeWakeAt, snoozeWakeTick]);
2026-10-24T22:14:10.6346243Z ยท โโโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6346403Z ยท โฐโโ Unnecessary dependency `snoozeWakeTick`
2026-10-24T22:14:10.6346536Z 528 โ const v2SearchQuery = props.searchQuery.trim().toLocaleLowerCase();
2026-10-24T22:14:10.6346584Z โฐโโโโ
2026-10-24T22:14:10.6346870Z 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-24T22:14:10.6347174Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6347181Z
2026-10-24T22:14:10.6347347Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6347471Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:518:53]
2026-10-24T22:14:10.6347553Z 517 โ if (Number.isNaN(wakeAtMs)) return;
2026-10-24T22:14:10.6347707Z 518 โ const delayMs = Math.min(Math.max(0, wakeAtMs - Date.now()) + 50, 2_147_483_647);
2026-10-24T22:14:10.6347823Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6347985Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6348062Z 519 โ const id = setTimeout(() => {
2026-10-24T22:14:10.6348109Z โฐโโโโ
2026-10-24T22:14:10.6348439Z 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-24T22:14:10.6348753Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6348756Z
2026-10-24T22:14:10.6348898Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6349013Z โญโ[apps/mobile/src/native/StackHeader.tsx:185:9]
2026-10-24T22:14:10.6349075Z 184 โ "options",
2026-10-24T22:14:10.6349166Z 185 โ latestOptionFunctionsRef.current,
2026-10-24T22:14:10.6349272Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6349457Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6349555Z 186 โ optionFunctionWrappersRef.current,
2026-10-24T22:14:10.6349606Z โฐโโโโ
2026-10-24T22:14:10.6350062Z 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-24T22:14:10.6350347Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6350349Z
2026-10-24T22:14:10.6350488Z โ react(refs): Cannot access refs during render
2026-10-24T22:14:10.6350602Z โญโ[apps/mobile/src/native/StackHeader.tsx:186:9]
2026-10-24T22:14:10.6350690Z 185 โ latestOptionFunctionsRef.current,
2026-10-24T22:14:10.6350784Z 186 โ optionFunctionWrappersRef.current,
2026-10-24T22:14:10.6350890Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6351075Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-24T22:14:10.6351163Z 187 โ ) as NativeStackNavigationOptions)
2026-10-24T22:14:10.6351211Z โฐโโโโ
2026-10-24T22:14:10.6351663Z 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-24T22:14:10.6351943Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-24T22:14:10.6351946Z
2026-10-24T22:14:10.6352168Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-24T22:14:10.6352283Z โญโ[packages/shared/src/serverSettings.ts:346:9]
2026-10-24T22:14:10.6352381Z 345 โ const entry: ProjectSettingsOverrides = {
2026-10-24T22:14:10.6352505Z 346 โ ...(entries.get(projectId) ?? currentEntries[projectId] ?? {}),
2026-10-24T22:14:10.6352651Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6352705Z 347 โ };
2026-10-24T22:14:10.6352753Z โฐโโโโ
2026-10-24T22:14:10.6353011Z 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-24T22:14:10.6353014Z
2026-10-24T22:14:10.6353231Z โ oxc(no-accumulating-spread): Do not spread accumulators in Array.prototype.reduce()
2026-10-24T22:14:10.6353391Z โญโ[packages/shared/src/serverSettings.ts:448:24]
2026-10-24T22:14:10.6353489Z 447 โ const favorites =
2026-10-24T22:14:10.6353591Z 448 โ setModelFavorites?.reduce((current, change) => {
2026-10-24T22:14:10.6353674Z ยท โโโโฌโโ
2026-10-24T22:14:10.6353793Z ยท โฐโโ For this reduce
2026-10-24T22:14:10.6353871Z 449 โ const exists = current.some(
2026-10-24T22:14:10.6354039Z 450 โ (favorite) => favorite.provider === change.provider && favorite.model === change.model,
2026-10-24T22:14:10.6354094Z 451 โ );
2026-10-24T22:14:10.6354163Z 452 โ return change.favorite
2026-10-24T22:14:10.6354222Z 453 โ ? exists
2026-10-24T22:14:10.6354280Z 454 โ ? current
2026-10-24T22:14:10.6354417Z 455 โ : [...current, { provider: change.provider, model: change.model }]
2026-10-24T22:14:10.6354501Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6354661Z ยท โฐโโ From this spread
2026-10-24T22:14:10.6354735Z 456 โ : current.filter(
2026-10-24T22:14:10.6354809Z โฐโโโโ
2026-10-24T22:14:10.6355009Z help: Consider using `Object.assign()` or `Array.prototype.push()` to mutate the accumulator instead.
2026-10-24T22:14:10.6355162Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-24T22:14:10.6355165Z
2026-10-24T22:14:10.6355345Z โ oxc(no-accumulating-spread): Do not spread accumulators in loops
2026-10-24T22:14:10.6355457Z โญโ[packages/shared/src/serverSettings.ts:466:3]
2026-10-24T22:14:10.6355513Z 464 โ null;
2026-10-24T22:14:10.6355628Z 465 โ let nextModelPreferences = initialModelPreferences;
2026-10-24T22:14:10.6355715Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-24T22:14:10.6355837Z ยท โฐโโ From this accumulator
2026-10-24T22:14:10.6355932Z 466 โ for (const change of setModelsHidden ?? []) {
2026-10-24T22:14:10.6355995Z ยท โโฌโ
2026-10-24T22:14:10.6356094Z ยท โฐโโ For this loop
2026-10-24T22:14:10.6356223Z 467 โ const preferences = nextModelPreferences?.[change.provider] ?? {
2026-10-24T22:14:10.6356288Z 468 โ hiddenModels: [],
2026-10-24T22:14:10.6356351Z 469 โ modelOrder: [],
2026-10-24T22:14:10.6356401Z 470 โ };
2026-10-24T22:14:10.6356573Z 471 โ const hiddenModels = preferences.hiddenModels.filter((model) => model !== change.model);
2026-10-24T22:14:10.6356726Z 472 โ if (change.hidden) hiddenModels.push(change.model);
2026-10-24T22:14:10.6356827Z 473 โ nextModelPreferences = {
2026-10-24T22:14:10.6356899Z 474 โ ...nextModelPreferences,
2026-10-24T22:14:10.6356990Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6357109Z ยท โฐโโ From this spread
2026-10-24T22:14:10.6357214Z 475 โ [change.provider]: { ...preferences, hiddenModels },
2026-10-24T22:14:10.6357261Z โฐโโโโ
2026-10-24T22:14:10.6357409Z help: Consider using `Object.assign()` to mutate the accumulator instead.
2026-10-24T22:14:10.6357557Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-24T22:14:10.6357560Z
2026-10-24T22:14:10.6357721Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6357873Z โญโ[apps/web/src/components/CommandPaletteThreadItems.tsx:152:58]
2026-10-24T22:14:10.6358049Z 151 โ if (threadSearchQuery.trim().length > 0 && !threadSearchQuery.startsWith(">") && !isOpen) {
2026-10-24T22:14:10.6358175Z 152 โ claimThreadOpen(thread.environmentId, thread.id, Date.now());
2026-10-24T22:14:10.6358292Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6358456Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6358508Z 153 โ }
2026-10-24T22:14:10.6358555Z โฐโโโโ
2026-10-24T22:14:10.6358832Z 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-24T22:14:10.6359121Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6359126Z
2026-10-24T22:14:10.6359580Z โ 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-24T22:14:10.6359758Z โญโ[apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts:521:13]
2026-10-24T22:14:10.6359826Z 520 โ })).delivery;
2026-10-24T22:14:10.6360019Z 521 โ โญโโถ while (delivery.outcome === "accepted") {
2026-10-24T22:14:10.6360128Z 522 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6360274Z 523 โ โ delivery = (yield* service.getWebhookDelivery({
2026-10-24T22:14:10.6360373Z 524 โ โ id: task.id,
2026-10-24T22:14:10.6360484Z 525 โ โ deliveryId: deliveryId!,
2026-10-24T22:14:10.6360577Z 526 โ โ })).delivery;
2026-10-24T22:14:10.6360709Z 527 โ โฐโโถ }
2026-10-24T22:14:10.6360819Z 528 โ assert.equal(delivery.outcome, "dispatch_failed");
2026-10-24T22:14:10.6360867Z โฐโโโโ
2026-10-24T22:14:10.6360869Z
2026-10-24T22:14:10.6361048Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-24T22:14:10.6361148Z โญโ[packages/shared/src/qrCode.ts:458:44]
2026-10-24T22:14:10.6361209Z 457 โ ): Array<byte> {
2026-10-24T22:14:10.6361357Z 458 โ let result: Array<byte> = divisor.map((_) => 0);
2026-10-24T22:14:10.6361480Z ยท โฌ
2026-10-24T22:14:10.6361617Z ยท โฐโโ '_' is declared here
2026-10-24T22:14:10.6361684Z 459 โ for (const b of data) {
2026-10-24T22:14:10.6361732Z โฐโโโโ
2026-10-24T22:14:10.6361831Z help: Consider removing this parameter.
2026-10-24T22:14:10.6361834Z
2026-10-24T22:14:10.6362052Z โ eslint(no-unused-vars): Function 'resolveThreadWorkspaceCwd' is declared but never used.
2026-10-24T22:14:10.6362165Z โญโ[apps/server/src/checkpointing/Utils.ts:12:10]
2026-10-24T22:14:10.6362214Z 11 โ
2026-10-24T22:14:10.6362308Z 12 โ function resolveThreadWorkspaceCwd(input: {
2026-10-24T22:14:10.6362405Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-24T22:14:10.6362574Z ยท โฐโโ 'resolveThreadWorkspaceCwd' is declared here
2026-10-24T22:14:10.6362639Z 13 โ readonly thread: {
2026-10-24T22:14:10.6362689Z โฐโโโโ
2026-10-24T22:14:10.6362788Z help: Consider removing this declaration.
2026-10-24T22:14:10.6362791Z
2026-10-24T22:14:10.6363206Z โ t3code(no-inline-schema-compile): Hoist Schema.is(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-24T22:14:10.6363348Z โญโ[apps/server/src/provider/acp/AntigravityProtocol.ts:263:20]
2026-10-24T22:14:10.6363431Z 262 โ ...(update._meta !== undefined
2026-10-24T22:14:10.6363592Z 263 โ ? { _meta: Schema.is(Schema.Record(Schema.String, Schema.Json))(meta) ? meta : null }
2026-10-24T22:14:10.6363679Z ยท โโโโโโโโโ
2026-10-24T22:14:10.6363739Z 264 โ : {}),
2026-10-24T22:14:10.6363787Z โฐโโโโ
2026-10-24T22:14:10.6363789Z
2026-10-24T22:14:10.6363949Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6364089Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:372:47]
2026-10-24T22:14:10.6364213Z 371 โ const { open, onOpenChange, onSnooze, timestampFormat } = props;
2026-10-24T22:14:10.6364362Z 372 โ const presets = open ? resolveSnoozePresets(new Date(), timestampFormat) : [];
2026-10-24T22:14:10.6364472Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6364662Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6364726Z 373 โ return (
2026-10-24T22:14:10.6364776Z โฐโโโโ
2026-10-24T22:14:10.6365048Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6365334Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6365337Z
2026-10-24T22:14:10.6365495Z โ react(purity): Cannot call impure function during render
2026-10-24T22:14:10.6365636Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:853:39]
2026-10-24T22:14:10.6365724Z 852 โ if (snoozeGateClock.thread !== thread) {
2026-10-24T22:14:10.6365845Z 853 โ setSnoozeGateClock({ thread, now: new Date().toISOString() });
2026-10-24T22:14:10.6366000Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6366248Z ยท โฐโโ Cannot call impure function
2026-10-24T22:14:10.6366300Z 854 โ }
2026-10-24T22:14:10.6366347Z โฐโโโโ
2026-10-24T22:14:10.6366613Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-24T22:14:10.6366899Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-24T22:14:10.6366901Z
2026-10-24T22:14:10.6367353Z โ 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-24T22:14:10.6367521Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:566:7]
2026-10-24T22:14:10.6367619Z 565 โ let afterSequence = created[0]!.sequence;
2026-10-24T22:14:10.6367810Z 566 โ โญโโถ for (let index = 1; index <= 32; index += 1) {
2026-10-24T22:14:10.6367906Z 567 โ โ const nextEvent = {
2026-10-24T22:14:10.6368058Z 568 โ โ id: EventId.make(`event:foundation-stream-race:${index}`),
2026-10-24T22:14:10.6368186Z 569 โ โ type: "thread.metadata-updated" as const,
2026-10-24T22:14:10.6368271Z 570 โ โ threadId,
2026-10-24T22:14:10.6368371Z 571 โ โ providerInstanceId,
2026-10-24T22:14:10.6368472Z 572 โ โ occurredAt: now,
2026-10-24T22:14:10.6368617Z 573 โ โ payload: { ...thread, title: `Race update ${index}` },
2026-10-24T22:14:10.6368739Z 574 โ โ } satisfies OrchestrationV2DomainEvent;
2026-10-24T22:14:10.6368849Z 575 โ โ const reader = yield* eventSink
2026-10-24T22:14:10.6368964Z 576 โ โ .stream({ threadId, afterSequence })
2026-10-24T22:14:10.6369089Z 577 โ โ .pipe(Stream.runHead, Effect.forkChild);
2026-10-24T22:14:10.6369190Z 578 โ โ yield* Effect.yieldNow;
2026-10-24T22:14:10.6369348Z 579 โ โ const written = yield* eventSink.write({ events: [nextEvent] });
2026-10-24T22:14:10.6369471Z 580 โ โ const received = yield* Fiber.join(reader);
2026-10-24T22:14:10.6369586Z 581 โ โ if (Option.isNone(received)) {
2026-10-24T22:14:10.6369781Z 582 โ โ return yield* Effect.die("The event stream ended before delivering the live event.");
2026-10-24T22:14:10.6369857Z 583 โ โ }
2026-10-24T22:14:10.6370013Z 584 โ โ assert.equal(received.value.sequence, written[0]?.sequence);
2026-10-24T22:14:10.6370156Z 585 โ โ assert.equal(received.value.event.id, nextEvent.id);
2026-10-24T22:14:10.6370279Z 586 โ โ afterSequence = received.value.sequence;
2026-10-24T22:14:10.6370404Z 587 โ โฐโโถ }
2026-10-24T22:14:10.6370462Z 588 โ }),
2026-10-24T22:14:10.6370511Z โฐโโโโ
2026-10-24T22:14:10.6370513Z
2026-10-24T22:14:10.6371014Z โ 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-24T22:14:10.6371215Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:2327:9]
2026-10-24T22:14:10.6371289Z 2326 โ let settled = false;
2026-10-24T22:14:10.6371446Z 2327 โ โญโโถ while (!settled) {
2026-10-24T22:14:10.6371598Z 2328 โ โ settled = (yield* outbox.listByCommandId(commandId)).every(
2026-10-24T22:14:10.6371725Z 2329 โ โ (effect) => effect.status === "succeeded",
2026-10-24T22:14:10.6371804Z 2330 โ โ );
2026-10-24T22:14:10.6371931Z 2331 โ โ if (!settled) yield* Effect.yieldNow;
2026-10-24T22:14:10.6372066Z 2332 โ โฐโโถ }
2026-10-24T22:14:10.6372177Z 2333 โ }).pipe(Effect.provide(layerWorker), Effect.scoped);
2026-10-24T22:14:10.6372226Z โฐโโโโ
2026-10-24T22:14:10.6372229Z
2026-10-24T22:14:10.6372482Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-24T22:14:10.6372647Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:333:7]
2026-10-24T22:14:10.6372698Z 328 โ };
2026-10-24T22:14:10.6372761Z 329 โ useEffect(() => {
2026-10-24T22:14:10.6372829Z ยท โโโโโฌโโโโ
2026-10-24T22:14:10.6372956Z ยท โฐโโ This is the containing effect
2026-10-24T22:14:10.6373057Z 330 โ if (!guidesEnabled && section === "guide") {
2026-10-24T22:14:10.6373150Z 331 โ requestedSection.current = "overview";
2026-10-24T22:14:10.6373310Z 332 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-24T22:14:10.6373380Z 333 โ setSection("overview");
2026-10-24T22:14:10.6373451Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6373616Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-24T22:14:10.6373668Z 334 โ }
2026-10-24T22:14:10.6373716Z โฐโโโโ
2026-10-24T22:14:10.6374302Z 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-24T22:14:10.6374648Z 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-24T22:14:10.6374651Z
2026-10-24T22:14:10.6374851Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T22:14:10.6375016Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:335:6]
2026-10-24T22:14:10.6375111Z 330 โ if (!guidesEnabled && section === "guide") {
2026-10-24T22:14:10.6375200Z 331 โ requestedSection.current = "overview";
2026-10-24T22:14:10.6375279Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-24T22:14:10.6375758Z ยท โฐโโ 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-24T22:14:10.6375947Z 332 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-24T22:14:10.6376089Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6376570Z ยท โ โฐโโ 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-24T22:14:10.6377002Z ยท โฐโโ 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-24T22:14:10.6377078Z 333 โ setSection("overview");
2026-10-24T22:14:10.6377133Z 334 โ }
2026-10-24T22:14:10.6377219Z 335 โ }, [guidesEnabled, section, insets.top]);
2026-10-24T22:14:10.6377325Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6377508Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6377591Z 336 โ const tabContent = activityContent;
2026-10-24T22:14:10.6377639Z โฐโโโโ
2026-10-24T22:14:10.6377803Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T22:14:10.6378107Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6378110Z
2026-10-24T22:14:10.6378314Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-24T22:14:10.6378481Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:877:6]
2026-10-24T22:14:10.6378534Z 860 โ if (
2026-10-24T22:14:10.6378645Z 861 โ lastSelection.current.path === route.params.path &&
2026-10-24T22:14:10.6378722Z ยท โโโโโโโฌโโโโโโ
2026-10-24T22:14:10.6379147Z ยท โฐโโ 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-24T22:14:10.6379269Z 862 โ lastSelection.current.id === route.params.fileSelectionId
2026-10-24T22:14:10.6379322Z 863 โ )
2026-10-24T22:14:10.6379380Z 864 โ return;
2026-10-24T22:14:10.6379597Z 865 โ lastSelection.current = { path: route.params.path, id: route.params.fileSelectionId };
2026-10-24T22:14:10.6379755Z 866 โ if (route.params.focus) navigation.setParams({ focus: undefined });
2026-10-24T22:14:10.6379838Z 867 โ setJumpPath(route.params.path);
2026-10-24T22:14:10.6379908Z 868 โ setSelectedRowId(null);
2026-10-24T22:14:10.6379983Z 869 โ jumpStarted.current = false;
2026-10-24T22:14:10.6380122Z 870 โ const file = data.files.find((entry) => entry.path === route.params.path);
2026-10-24T22:14:10.6380211Z 871 โ if (!file || !nativeView.current) return;
2026-10-24T22:14:10.6380296Z ยท โโโโโโฌโโโโ
2026-10-24T22:14:10.6380726Z ยท โฐโโ 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-24T22:14:10.6380848Z 872 โ setCollapsedIds((ids) => ids.filter((id) => id !== file.id));
2026-10-24T22:14:10.6380921Z 873 โ jumpStarted.current = true;
2026-10-24T22:14:10.6381052Z 874 โ void nativeView.current.scrollToFile(file.id, false).catch(() => {
2026-10-24T22:14:10.6381129Z 875 โ jumpStarted.current = false;
2026-10-24T22:14:10.6381181Z 876 โ });
2026-10-24T22:14:10.6381368Z 877 โ }, [route.params.path, route.params.fileSelectionId, route.params.focus, data.files, navigation]);
2026-10-24T22:14:10.6381565Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6381777Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-24T22:14:10.6381891Z 878 โ const appliedFilter = useRef(filter.hideTestFiles);
2026-10-24T22:14:10.6381942Z โฐโโโโ
2026-10-24T22:14:10.6382104Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-24T22:14:10.6382406Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-24T22:14:10.6382408Z
2026-10-24T22:14:10.6382771Z โ 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-24T22:14:10.6382938Z โญโ[packages/shared/src/otelEnvironment.ts:146:14]
2026-10-24T22:14:10.6382992Z 145 โ name,
2026-10-24T22:14:10.6383127Z 146 โ (raw) => Schema.decodeUnknownOption(OtlpProtocol)(raw.toLowerCase()),
2026-10-24T22:14:10.6383232Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-24T22:14:10.6383349Z 147 โ `${name} is not http/protobuf or http/json, ${NOT_EXPORTED}`,
2026-10-24T22:14:10.6383396Z โฐโโโโ
2026-10-24T22:14:10.6383398Z
2026-10-24T22:14:10.6383586Z โ eslint(no-unused-vars): Identifier 'Fiber' is imported but never used.
2026-10-24T22:14:10.6383676Z โญโ[apps/server/src/ws.ts:10:13]
2026-10-24T22:14:10.6383759Z 9 โ import * as Effect from "effect/Effect";
2026-10-24T22:14:10.6383839Z 10 โ import * as Fiber from "effect/Fiber";
2026-10-24T22:14:10.6383910Z ยท โโโฌโโ
2026-10-24T22:14:10.6384034Z ยท โฐโโ 'Fiber' is imported here
2026-10-24T22:14:10.6384130Z 11 โ import * as FileSystem from "effect/FileSystem";
2026-10-24T22:14:10.6384178Z โฐโโโโ
2026-10-24T22:14:10.6384340Z help: Consider removing this import.
2026-10-24T22:14:10.6384380Z
2026-10-24T22:14:10.6384597Z โ eslint(no-unused-vars): Identifier 'Schedule' is imported but never used.
2026-10-24T22:14:10.6384686Z โญโ[apps/server/src/ws.ts:17:13]
2026-10-24T22:14:10.6384761Z 16 โ import * as Ref from "effect/Ref";
2026-10-24T22:14:10.6384850Z 17 โ import * as Schedule from "effect/Schedule";
2026-10-24T22:14:10.6384924Z ยท โโโโโฌโโโ
2026-10-24T22:14:10.6385053Z ยท โฐโโ 'Schedule' is imported here
2026-10-24T22:14:10.6385134Z 18 โ import * as Schema from "effect/Schema";
2026-10-24T22:14:10.6385183Z โฐโโโโ
2026-10-24T22:14:10.6385276Z help: Consider removing this import.
2026-10-24T22:14:10.6385279Z
2026-10-24T22:14:10.6385572Z โ eslint(no-unused-vars): Variable 'projectSetupScriptRunner' is declared but never used. Unused variables should start with a '_'.
2026-10-24T22:14:10.6385668Z โญโ[apps/server/src/ws.ts:1286:13]
2026-10-24T22:14:10.6385816Z 1285 โ const usageLimitSources = yield* UsageLimitSources.UsageLimitSources;
2026-10-24T22:14:10.6386010Z 1286 โ const projectSetupScriptRunner = yield* ProjectSetupScriptRunner.ProjectSetupScriptRunner;
2026-10-24T22:14:10.6386110Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-24T22:14:10.6386273Z ยท โฐโโ 'projectSetupScriptRunner' is declared here
2026-10-24T22:14:10.6386437Z 1287 โ const worktreeSetupTracker = yield* WorktreeSetupTracker.WorktreeSetupTracker;
2026-10-24T22:14:10.6386486Z โฐโโโโ
2026-10-24T22:14:10.6386585Z help: Consider removing this declaration.
2026-10-24T22:14:10.6386593Z
2026-10-24T22:14:10.6386675Z Found 0 errors and 367 warnings in 5479 files (4.9s, 8 threads)
2026-10-24T22:14:10.6844238Z Post job cleanup.
2026-10-24T22:14:10.7417724Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-24T22:14:10.7481755Z Post job cleanup.
2026-10-24T22:14:10.7496217Z ##[start-action display=Cache full pnpm store;id=__00612745-7317-4f26-b95e-103a9e56e87a.__actions_cache]
2026-10-24T22:14:10.7792029Z Post job cleanup.
2026-10-24T22:14:10.8785637Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-bab31c3827e90e1352d302da4c761fd1b91963ae565f5f0ea70972d0942af1f6, not saving cache.
2026-10-24T22:14:10.8818654Z ##[end-action id=__00612745-7317-4f26-b95e-103a9e56e87a.__actions_cache;outcome=success;conclusion=success;duration_ms=132]
2026-10-24T22:14:10.8820830Z ##[start-action display=Cache Vite+;id=__00612745-7317-4f26-b95e-103a9e56e87a.vp_cache]
2026-10-24T22:14:10.8855435Z Post job cleanup.
2026-10-24T22:14:10.9463953Z 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-24T22:14:10.9492897Z ##[end-action id=__00612745-7317-4f26-b95e-103a9e56e87a.vp_cache;outcome=success;conclusion=success;duration_ms=67]
2026-10-24T22:14:10.9533288Z Post job cleanup.
2026-10-24T22:14:10.9919098Z [command]/usr/local/bin/git version
2026-10-24T22:14:10.9946516Z git version 2.55.0
2026-10-24T22:14:10.9996574Z Temporarily overriding HOME='/home/runner/_work/_temp/a06aeb34-0992-4226-bec0-0c7253ee3d36' before making global git config changes
2026-10-24T22:14:10.9996917Z Adding repository directory to the temporary git global config as a safe directory
2026-10-24T22:14:10.9999399Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-24T22:14:11.0019127Z Removing SSH command configuration
2026-10-24T22:14:11.0021857Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-24T22:14:11.0042403Z [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-24T22:14:11.0150604Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-24T22:14:11.0171864Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-24T22:14:11.0205367Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-24T22:14:11.0225251Z ##[group]Run '/job_completed.sh'
2026-10-24T22:14:11.0235117Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-24T22:14:11.0235279Z env:
2026-10-24T22:14:11.0235387Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 160
2026-10-24T22:14:11.0235530Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 404
2026-10-24T22:14:11.0235668Z BLACKSMITH_CHECK_RUN_ID: 121002392470
2026-10-24T22:14:11.0235803Z BLACKSMITH_JOB_DISPLAY_NAME: Lint
2026-10-24T22:14:11.0235947Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-24T22:14:11.0236077Z ##[endgroup]
2026-10-24T22:14:11.0306954Z Docker container cache not activated, skipping hash computation.
2026-10-24T22:14:11.0562590Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-24T22:14:11.0603765Z Cleaning up orphan processes