GitHub check
256 KB of 594 KB loaded Download the full log (594 KB)
338 KB of earlier output not loaded
useAssetUrlState,
2026-10-22T19:31:22.9702754Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9702999Z ยท โฐโโ 'useAssetUrlState' is imported here
2026-10-22T19:31:22.9703091Z 233 โ useRefreshAssetUrl,
2026-10-22T19:31:22.9703194Z โฐโโโโ
2026-10-22T19:31:22.9703343Z help: Consider removing this import.
2026-10-22T19:31:22.9703345Z
2026-10-22T19:31:22.9703619Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9703784Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2111:7]
2026-10-22T19:31:22.9703899Z 2110 โ setExpandedFile(null);
2026-10-22T19:31:22.9704099Z 2111 โ }, [props.environmentId, props.threadId, props.contentPresentation.kind]);
2026-10-22T19:31:22.9704634Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโโฌโโโโโโ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9705034Z ยท โ โ โฐโโ Unnecessary dependency `props.contentPresentation.kind`
2026-10-22T19:31:22.9705279Z ยท โ โฐโโ Unnecessary dependency `props.threadId`
2026-10-22T19:31:22.9705508Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-22T19:31:22.9705706Z 2112 โ const horizontalPadding = props.layoutVariant === "split" ? 20 : 16;
2026-10-22T19:31:22.9705821Z โฐโโโโ
2026-10-22T19:31:22.9706160Z 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-22T19:31:22.9706548Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9706554Z
2026-10-22T19:31:22.9706797Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9707024Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2578:7]
2026-10-22T19:31:22.9707222Z 2577 โ reportHeaderMaterialVisibility(false);
2026-10-22T19:31:22.9707436Z 2578 โ }, [feedThreadKey, reportHeaderMaterialVisibility]);
2026-10-22T19:31:22.9707622Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9707880Z ยท โฐโโ Unnecessary dependency `feedThreadKey`
2026-10-22T19:31:22.9708002Z 2579 โ
2026-10-22T19:31:22.9708079Z โฐโโโโ
2026-10-22T19:31:22.9708451Z 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-22T19:31:22.9708824Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9708827Z
2026-10-22T19:31:22.9709268Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9709599Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2594:7]
2026-10-22T19:31:22.9709677Z 2593 โ }
2026-10-22T19:31:22.9709863Z 2594 โ }, [listMountKey, props.contentInsetEndAdjustment, listRef]);
2026-10-22T19:31:22.9710002Z ยท โโโโโโโฌโโโโโ
2026-10-22T19:31:22.9710390Z ยท โฐโโ Unnecessary dependency `listMountKey`
2026-10-22T19:31:22.9710520Z 2595 โ
2026-10-22T19:31:22.9710624Z โฐโโโโ
2026-10-22T19:31:22.9710967Z 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-22T19:31:22.9711374Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9711376Z
2026-10-22T19:31:22.9711632Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9711805Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:2751:7]
2026-10-22T19:31:22.9711906Z 2750 โ }
2026-10-22T19:31:22.9712154Z 2751 โ }, [expandedTurnIds, expandedWorkGroups, expandedWorkRows, settleDisclosureAfterLayout]);
2026-10-22T19:31:22.9712419Z ยท โโโโโโโโฌโโโโโโโ โโโโโโโโโโฌโโโโโโโโ โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9712712Z ยท โ โ โฐโโ Unnecessary dependency `expandedWorkRows`
2026-10-22T19:31:22.9712982Z ยท โ โฐโโ Unnecessary dependency `expandedWorkGroups`
2026-10-22T19:31:22.9713345Z ยท โฐโโ Unnecessary dependency `expandedTurnIds`
2026-10-22T19:31:22.9713462Z 2752 โ
2026-10-22T19:31:22.9713535Z โฐโโโโ
2026-10-22T19:31:22.9713899Z 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-22T19:31:22.9714278Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9714285Z
2026-10-22T19:31:22.9714554Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-22T19:31:22.9714779Z โญโ[apps/mobile/src/features/threads/ThreadFeed.tsx:603:9]
2026-10-22T19:31:22.9714882Z 602 โ };
2026-10-22T19:31:22.9715048Z 603 โ }, [props.environmentId, attachment.id, httpBaseUrl]),
2026-10-22T19:31:22.9715284Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ โโโโโโฌโโโโโ
2026-10-22T19:31:22.9715608Z ยท โ โ โฐโโ Unnecessary dependency `httpBaseUrl`
2026-10-22T19:31:22.9715875Z ยท โ โฐโโ Unnecessary dependency `attachment.id`
2026-10-22T19:31:22.9716073Z ยท โฐโโ Unnecessary dependency `props.environmentId`
2026-10-22T19:31:22.9716169Z 604 โ );
2026-10-22T19:31:22.9716271Z โฐโโโโ
2026-10-22T19:31:22.9716654Z 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-22T19:31:22.9717002Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9717027Z
2026-10-22T19:31:22.9717749Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeUnknownSync(...) 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-22T19:31:22.9717964Z โญโ[packages/contracts/src/composerContext.test.ts:181:18]
2026-10-22T19:31:22.9718235Z 180 โ it("sends a message without the records the wire cannot carry", () => {
2026-10-22T19:31:22.9718579Z 181 โ const wire = Schema.encodeUnknownSync(Schema.toCodecJson(OrchestrationMessageContext))({
2026-10-22T19:31:22.9718765Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9718877Z 182 โ version: 1,
2026-10-22T19:31:22.9719016Z โฐโโโโ
2026-10-22T19:31:22.9719019Z
2026-10-22T19:31:22.9719279Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9719440Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:542:25]
2026-10-22T19:31:22.9719621Z 541 โ // range) the boundary string is identical and the chain would die.
2026-10-22T19:31:22.9719755Z 542 โ }, [nextSnoozeWakeAt, snoozeWakeTick]);
2026-10-22T19:31:22.9719928Z ยท โโโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9720146Z ยท โฐโโ Unnecessary dependency `snoozeWakeTick`
2026-10-22T19:31:22.9720307Z 543 โ const v2SearchQuery = props.searchQuery.trim().toLocaleLowerCase();
2026-10-22T19:31:22.9720403Z โฐโโโโ
2026-10-22T19:31:22.9720772Z 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-22T19:31:22.9721156Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9721161Z
2026-10-22T19:31:22.9721515Z โ react(purity): Cannot call impure function during render
2026-10-22T19:31:22.9721697Z โญโ[apps/mobile/src/features/home/HomeScreen.tsx:533:53]
2026-10-22T19:31:22.9721824Z 532 โ if (Number.isNaN(wakeAtMs)) return;
2026-10-22T19:31:22.9722071Z 533 โ const delayMs = Math.min(Math.max(0, wakeAtMs - Date.now()) + 50, 2_147_483_647);
2026-10-22T19:31:22.9722246Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9722442Z ยท โฐโโ Cannot call impure function
2026-10-22T19:31:22.9722570Z 534 โ const id = setTimeout(() => {
2026-10-22T19:31:22.9722660Z โฐโโโโ
2026-10-22T19:31:22.9723015Z 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-22T19:31:22.9723347Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-22T19:31:22.9723350Z
2026-10-22T19:31:22.9723783Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:22.9723931Z โญโ[packages/contracts/src/auth.test.ts:17:12]
2026-10-22T19:31:22.9724161Z 16 โ it("decodes legacy review credentials without offering them in new grants", () => {
2026-10-22T19:31:22.9724380Z 17 โ expect(Schema.decodeUnknownSync(AuthEnvironmentScopes)(["review:write"])).toEqual([
2026-10-22T19:31:22.9724672Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9724823Z 18 โ "review:write",
2026-10-22T19:31:22.9724921Z โฐโโโโ
2026-10-22T19:31:22.9724924Z
2026-10-22T19:31:22.9725499Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:22.9725634Z โญโ[packages/contracts/src/auth.test.ts:20:18]
2026-10-22T19:31:22.9725730Z 19 โ ]);
2026-10-22T19:31:22.9725924Z 20 โ expect(() => Schema.decodeUnknownSync(AuthGrantScopes)(["review:write"])).toThrow();
2026-10-22T19:31:22.9726105Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9726263Z 21 โ expect(AuthStandardClientScopes).not.toContain("review:write");
2026-10-22T19:31:22.9726361Z โฐโโโโ
2026-10-22T19:31:22.9726364Z
2026-10-22T19:31:22.9726791Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:22.9726959Z โญโ[packages/contracts/src/auth.test.ts:58:21]
2026-10-22T19:31:22.9727190Z 57 โ it("ignores unknown response permissions without falling back to broader scopes", () => {
2026-10-22T19:31:22.9727340Z 58 โ const session = Schema.decodeUnknownSync(AuthSessionState)({
2026-10-22T19:31:22.9727490Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9727592Z 59 โ authenticated: true,
2026-10-22T19:31:22.9727715Z โฐโโโโ
2026-10-22T19:31:22.9727718Z
2026-10-22T19:31:22.9727914Z โ react(purity): Cannot call impure function during render
2026-10-22T19:31:22.9728126Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:372:47]
2026-10-22T19:31:22.9728305Z 371 โ const { open, onOpenChange, onSnooze, timestampFormat } = props;
2026-10-22T19:31:22.9728520Z 372 โ const presets = open ? resolveSnoozePresets(new Date(), timestampFormat) : [];
2026-10-22T19:31:22.9728819Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9729004Z ยท โฐโโ Cannot call impure function
2026-10-22T19:31:22.9729116Z 373 โ return (
2026-10-22T19:31:22.9729208Z โฐโโโโ
2026-10-22T19:31:22.9729582Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-22T19:31:22.9729984Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-22T19:31:22.9730032Z
2026-10-22T19:31:22.9730258Z โ react(purity): Cannot call impure function during render
2026-10-22T19:31:22.9730449Z โญโ[apps/web/src/components/sidebar/SidebarThreadRow.tsx:853:39]
2026-10-22T19:31:22.9730603Z 852 โ if (snoozeGateClock.thread !== thread) {
2026-10-22T19:31:22.9730771Z 853 โ setSnoozeGateClock({ thread, now: new Date().toISOString() });
2026-10-22T19:31:22.9730927Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9731138Z ยท โฐโโ Cannot call impure function
2026-10-22T19:31:22.9731225Z 854 โ }
2026-10-22T19:31:22.9731375Z โฐโโโโ
2026-10-22T19:31:22.9731691Z help: `Date` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders
2026-10-22T19:31:22.9732061Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-22T19:31:22.9732064Z
2026-10-22T19:31:22.9732532Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9732750Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:361:7]
2026-10-22T19:31:22.9732936Z 355 โ }, [cancelledIncomingShareId, navigation, props.incomingShareId]);
2026-10-22T19:31:22.9733053Z 356 โ useEffect(() => {
2026-10-22T19:31:22.9733173Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9733340Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9733503Z 357 โ if (!isReturningToProjectPicker) {
2026-10-22T19:31:22.9733604Z 358 โ return;
2026-10-22T19:31:22.9733709Z 359 โ }
2026-10-22T19:31:22.9733882Z 360 โ if (requestedInitialProjectAvailable) {
2026-10-22T19:31:22.9733989Z 361 โ setIsReturningToProjectPicker(false);
2026-10-22T19:31:22.9734169Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9734405Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9734506Z 362 โ return;
2026-10-22T19:31:22.9734622Z โฐโโโโ
2026-10-22T19:31:22.9735315Z 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-22T19:31:22.9735719Z 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-22T19:31:22.9735725Z
2026-10-22T19:31:22.9736050Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9736492Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:504:9]
2026-10-22T19:31:22.9736601Z 447 โ
2026-10-22T19:31:22.9736702Z 448 โ useEffect(() => {
2026-10-22T19:31:22.9736819Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9737005Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9737146Z 449 โ if (props.pendingTaskId || props.draftId) {
2026-10-22T19:31:22.9737256Z 450 โ return;
2026-10-22T19:31:22.9737454Z 451 โ }
2026-10-22T19:31:22.9737682Z 452 โ if (lastInitialProjectRefRef.current !== props.initialProjectRef) {
2026-10-22T19:31:22.9737872Z 453 โ lastInitialProjectRefRef.current = props.initialProjectRef;
2026-10-22T19:31:22.9737994Z 454 โ appliedInitialProjectKeyRef.current = null;
2026-10-22T19:31:22.9738125Z 455 โ }
2026-10-22T19:31:22.9738315Z 456 โ const initialEnvironmentId = props.initialProjectRef?.environmentId;
2026-10-22T19:31:22.9738494Z 457 โ const initialProjectId = props.initialProjectRef?.projectId;
2026-10-22T19:31:22.9738620Z 458 โ if (initialEnvironmentId && initialProjectId) {
2026-10-22T19:31:22.9738738Z 459 โ const directProject =
2026-10-22T19:31:22.9738862Z 460 โ projects.find(
2026-10-22T19:31:22.9739145Z 461 โ (project) =>
2026-10-22T19:31:22.9739362Z 462 โ project.environmentId === initialEnvironmentId && project.id === initialProjectId,
2026-10-22T19:31:22.9739465Z 463 โ ) ?? null;
2026-10-22T19:31:22.9739604Z 464 โ
2026-10-22T19:31:22.9739726Z 465 โ if (directProject) {
2026-10-22T19:31:22.9739900Z 466 โ // Apply the route's project once. Re-applying on every change would
2026-10-22T19:31:22.9740097Z 467 โ // instantly revert environment/project switches made in the picker.
2026-10-22T19:31:22.9740319Z 468 โ const directProjectKey = `${directProject.environmentId}:${directProject.id}`;
2026-10-22T19:31:22.9740523Z 469 โ if (appliedInitialProjectKeyRef.current === directProjectKey) {
2026-10-22T19:31:22.9740611Z 470 โ return;
2026-10-22T19:31:22.9740724Z 471 โ }
2026-10-22T19:31:22.9740859Z 472 โ if (props.initialProjectRef?.branch) {
2026-10-22T19:31:22.9741014Z 473 โ if (
2026-10-22T19:31:22.9741187Z 474 โ selectedProject?.environmentId !== directProject.environmentId ||
2026-10-22T19:31:22.9741344Z 475 โ selectedProject.id !== directProject.id
2026-10-22T19:31:22.9741447Z 476 โ ) {
2026-10-22T19:31:22.9741579Z 477 โ setProject(directProject);
2026-10-22T19:31:22.9741670Z 478 โ return;
2026-10-22T19:31:22.9741981Z 479 โ }
2026-10-22T19:31:22.9742109Z 480 โ if (!flow.draftKey) return;
2026-10-22T19:31:22.9742293Z 481 โ // The route completes checkout before mounting this composer. Local
2026-10-22T19:31:22.9742488Z 482 โ // mode reuses an existing worktree; worktree mode would create another.
2026-10-22T19:31:22.9742689Z 483 โ updateComposerDraftSettings(flow.draftKey, {
2026-10-22T19:31:22.9742810Z 484 โ workspaceSelection: {
2026-10-22T19:31:22.9742922Z 485 โ mode: "local",
2026-10-22T19:31:22.9743046Z 486 โ branch: props.initialProjectRef.branch,
2026-10-22T19:31:22.9743274Z 487 โ worktreePath: props.initialProjectRef.worktreePath ?? null,
2026-10-22T19:31:22.9743410Z 488 โ startFromOrigin: false,
2026-10-22T19:31:22.9743519Z 489 โ },
2026-10-22T19:31:22.9743613Z 490 โ });
2026-10-22T19:31:22.9743741Z 491 โ }
2026-10-22T19:31:22.9743940Z 492 โ appliedInitialProjectKeyRef.current = directProjectKey;
2026-10-22T19:31:22.9744043Z 493 โ if (
2026-10-22T19:31:22.9744212Z 494 โ selectedProject?.environmentId === directProject.environmentId &&
2026-10-22T19:31:22.9744349Z 495 โ selectedProject.id === directProject.id
2026-10-22T19:31:22.9744475Z 496 โ ) {
2026-10-22T19:31:22.9744763Z 497 โ return;
2026-10-22T19:31:22.9744841Z 498 โ }
2026-10-22T19:31:22.9745051Z 499 โ setProject(directProject);
2026-10-22T19:31:22.9745220Z 500 โ return;
2026-10-22T19:31:22.9745336Z 501 โ }
2026-10-22T19:31:22.9745413Z 502 โ
2026-10-22T19:31:22.9745537Z 503 โ if (projects.length > 0) {
2026-10-22T19:31:22.9745684Z 504 โ setIsReturningToProjectPicker(true);
2026-10-22T19:31:22.9745867Z ยท โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9746073Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9746177Z 505 โ }
2026-10-22T19:31:22.9746278Z โฐโโโโ
2026-10-22T19:31:22.9762729Z 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-22T19:31:22.9763252Z 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-22T19:31:22.9763256Z
2026-10-22T19:31:22.9763562Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9763741Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:604:5]
2026-10-22T19:31:22.9763803Z 545 โ
2026-10-22T19:31:22.9763881Z 546 โ useEffect(() => {
2026-10-22T19:31:22.9763964Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9764106Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9764220Z 547 โ const shareId = props.incomingShareId;
2026-10-22T19:31:22.9764321Z 548 โ const draftKey = flow.draftKey;
2026-10-22T19:31:22.9764435Z 549 โ const destinationProject = selectedProject;
2026-10-22T19:31:22.9764647Z 550 โ const initialEnvironmentId = props.initialProjectRef?.environmentId;
2026-10-22T19:31:22.9764793Z 551 โ const initialProjectId = props.initialProjectRef?.projectId;
2026-10-22T19:31:22.9764895Z 552 โ const selectedProjectMatchesRoute =
2026-10-22T19:31:22.9764986Z 553 โ !initialEnvironmentId ||
2026-10-22T19:31:22.9765062Z 554 โ !initialProjectId ||
2026-10-22T19:31:22.9765216Z 555 โ (destinationProject?.environmentId === initialEnvironmentId &&
2026-10-22T19:31:22.9765331Z 556 โ destinationProject.id === initialProjectId);
2026-10-22T19:31:22.9765403Z 557 โ if (
2026-10-22T19:31:22.9765475Z 558 โ !shareId ||
2026-10-22T19:31:22.9765555Z 559 โ !draftKey ||
2026-10-22T19:31:22.9765642Z 560 โ !destinationProject ||
2026-10-22T19:31:22.9765737Z 561 โ !selectedProjectMatchesRoute ||
2026-10-22T19:31:22.9765832Z 562 โ cancelledIncomingShareId === shareId
2026-10-22T19:31:22.9765910Z 563 โ ) {
2026-10-22T19:31:22.9765996Z 564 โ return;
2026-10-22T19:31:22.9766074Z 565 โ }
2026-10-22T19:31:22.9766178Z 566 โ const importKey = `${shareId}:${draftKey}`;
2026-10-22T19:31:22.9766243Z 567 โ if (
2026-10-22T19:31:22.9766376Z 568 โ startedShareImportKeyRef.current === importKey ||
2026-10-22T19:31:22.9766498Z 569 โ cancellingShareImportKeyRef.current === importKey
2026-10-22T19:31:22.9766558Z 570 โ ) {
2026-10-22T19:31:22.9766627Z 571 โ return;
2026-10-22T19:31:22.9766688Z 572 โ }
2026-10-22T19:31:22.9766744Z 573 โ
2026-10-22T19:31:22.9767052Z 574 โ if (!incomingShare) {
2026-10-22T19:31:22.9767325Z 575 โ if (isIncomingShareUnavailable && alertedUnavailableIncomingShareIdRef.current !== shareId) {
2026-10-22T19:31:22.9767469Z 576 โ alertedUnavailableIncomingShareIdRef.current = shareId;
2026-10-22T19:31:22.9767539Z 577 โ Dialog.alert(
2026-10-22T19:31:22.9767635Z 578 โ "Shared content unavailable",
2026-10-22T19:31:22.9767838Z 579 โ "The shared content is no longer in the inbox. You can continue editing this task draft.",
2026-10-22T19:31:22.9767911Z 580 โ );
2026-10-22T19:31:22.9767975Z 581 โ }
2026-10-22T19:31:22.9768052Z 582 โ return;
2026-10-22T19:31:22.9768114Z 583 โ }
2026-10-22T19:31:22.9768179Z 584 โ
2026-10-22T19:31:22.9768243Z 585 โ if (
2026-10-22T19:31:22.9768418Z 586 โ incomingShare.attachments.some((attachment) => attachment.type === "file") &&
2026-10-22T19:31:22.9768538Z 587 โ selectedEnvironmentServerConfig === null
2026-10-22T19:31:22.9768606Z 588 โ ) {
2026-10-22T19:31:22.9768668Z 589 โ return;
2026-10-22T19:31:22.9768734Z 590 โ }
2026-10-22T19:31:22.9768793Z 591 โ
2026-10-22T19:31:22.9768948Z 592 โ if (alertedUnavailableIncomingShareIdRef.current === shareId) {
2026-10-22T19:31:22.9769079Z 593 โ alertedUnavailableIncomingShareIdRef.current = null;
2026-10-22T19:31:22.9769149Z 594 โ }
2026-10-22T19:31:22.9769271Z 595 โ startedShareImportKeyRef.current = importKey;
2026-10-22T19:31:22.9769344Z 596 โ const draftBackup =
2026-10-22T19:31:22.9769550Z 597 โ shareImportDraftBackupRef.current.get(importKey) ?? getComposerDraftSnapshot(draftKey);
2026-10-22T19:31:22.9769702Z 598 โ shareImportDraftBackupRef.current.set(importKey, draftBackup);
2026-10-22T19:31:22.9769812Z 599 โ const importToken = Symbol(importKey);
2026-10-22T19:31:22.9769901Z 600 โ let didReserveShare = false;
2026-10-22T19:31:22.9769993Z 601 โ let didConsumeShare = false;
2026-10-22T19:31:22.9770089Z 602 โ let needsDraftRestore = false;
2026-10-22T19:31:22.9770213Z 603 โ activeShareImportTokenRef.current = importToken;
2026-10-22T19:31:22.9770303Z 604 โ setImportingShareKey(importKey);
2026-10-22T19:31:22.9770403Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:22.9770600Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9770683Z 605 โ void (async () => {
2026-10-22T19:31:22.9770738Z โฐโโโโ
2026-10-22T19:31:22.9771396Z 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-22T19:31:22.9771755Z 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-22T19:31:22.9771758Z
2026-10-22T19:31:22.9771978Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9772151Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:524:5]
2026-10-22T19:31:22.9772234Z 523 โ props.initialProjectRef,
2026-10-22T19:31:22.9772324Z 524 โ props.incomingShareId,
2026-10-22T19:31:22.9772427Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-22T19:31:22.9772704Z ยท โฐโโ Unnecessary dependency `props.incomingShareId`
2026-10-22T19:31:22.9772829Z 525 โ props.pendingTaskId,
2026-10-22T19:31:22.9772895Z โฐโโโโ
2026-10-22T19:31:22.9773212Z 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-22T19:31:22.9773548Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9773551Z
2026-10-22T19:31:22.9773792Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-22T19:31:22.9773955Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:543:5]
2026-10-22T19:31:22.9774088Z 542 โ loadedBranchesProjectKeyRef.current = projectKey;
2026-10-22T19:31:22.9774169Z 543 โ flow.loadBranches();
2026-10-22T19:31:22.9774255Z ยท โโโฌโ
2026-10-22T19:31:22.9774391Z ยท โฐโโ Missing dependency `flow`
2026-10-22T19:31:22.9774502Z 544 โ }, [flow.loadBranches, selectedProject]);
2026-10-22T19:31:22.9774693Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9774925Z ยท โฐโโ Overly precise dependency `flow.loadBranches`, use `flow` instead
2026-10-22T19:31:22.9774989Z 545 โ
2026-10-22T19:31:22.9775056Z โฐโโโโ
2026-10-22T19:31:22.9775507Z 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-22T19:31:22.9775845Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9775850Z
2026-10-22T19:31:22.9776065Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9776225Z โญโ[apps/mobile/src/features/threads/NewTaskDraftScreen.tsx:766:5]
2026-10-22T19:31:22.9776301Z 765 โ flow.draftKey,
2026-10-22T19:31:22.9776389Z 766 โ hasImportedIncomingShare,
2026-10-22T19:31:22.9776493Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9776688Z ยท โฐโโ Unnecessary dependency `hasImportedIncomingShare`
2026-10-22T19:31:22.9776772Z 767 โ incomingShare,
2026-10-22T19:31:22.9776871Z 768 โ isIncomingShareInboxLoading,
2026-10-22T19:31:22.9776998Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโโ
2026-10-22T19:31:22.9777199Z ยท โฐโโ Unnecessary dependency `isIncomingShareInboxLoading`
2026-10-22T19:31:22.9777296Z 769 โ isIncomingShareUnavailable,
2026-10-22T19:31:22.9777377Z 770 โ props.incomingShareId,
2026-10-22T19:31:22.9777485Z 771 โ props.initialProjectRef?.environmentId,
2026-10-22T19:31:22.9777579Z 772 โ props.initialProjectRef?.projectId,
2026-10-22T19:31:22.9777664Z 773 โ releaseShareReservation,
2026-10-22T19:31:22.9777737Z 774 โ reserveShare,
2026-10-22T19:31:22.9777827Z 775 โ selectedEnvironmentServerConfig,
2026-10-22T19:31:22.9777909Z 776 โ selectedProject,
2026-10-22T19:31:22.9777993Z 777 โ shareImportAttempt,
2026-10-22T19:31:22.9778090Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9778271Z ยท โฐโโ Unnecessary dependency `shareImportAttempt`
2026-10-22T19:31:22.9778409Z 778 โ ]);
2026-10-22T19:31:22.9778514Z โฐโโโโ
2026-10-22T19:31:22.9778833Z 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-22T19:31:22.9779158Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9779168Z
2026-10-22T19:31:22.9779660Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeUnknownSync(...) 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-22T19:31:22.9779806Z โญโ[packages/contracts/src/baseSchemas.test.ts:39:9]
2026-10-22T19:31:22.9779889Z 38 โ JSON.stringify(
2026-10-22T19:31:22.9780027Z 39 โ Schema.encodeUnknownSync(Schema.toCodecJson(Named))([
2026-10-22T19:31:22.9780134Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9780219Z 40 โ { name: "a" },
2026-10-22T19:31:22.9780282Z โฐโโโโ
2026-10-22T19:31:22.9780286Z
2026-10-22T19:31:22.9780452Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9780619Z โญโ[apps/mobile/src/features/home/thread-swipe-actions.tsx:494:27]
2026-10-22T19:31:22.9780686Z 493 โ >
2026-10-22T19:31:22.9780777Z 494 โ {props.children(close)}
2026-10-22T19:31:22.9780879Z ยท โโโฌโโ
2026-10-22T19:31:22.9781048Z ยท โฐโโ Cannot access ref value during render
2026-10-22T19:31:22.9781141Z 495 โ </ReanimatedSwipeable>
2026-10-22T19:31:22.9781211Z โฐโโโโ
2026-10-22T19:31:22.9781720Z 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-22T19:31:22.9782032Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9782040Z
2026-10-22T19:31:22.9782316Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9782494Z โญโ[apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx:285:5]
2026-10-22T19:31:22.9782629Z 283 โ const [snoozeWakeTick, bumpSnoozeWakeTick] = useState(0);
2026-10-22T19:31:22.9782785Z 284 โ useEffect(() => {
2026-10-22T19:31:22.9782899Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9783045Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9783141Z 285 โ setNow(new Date().toISOString());
2026-10-22T19:31:22.9783222Z ยท โโโโฌโโ
2026-10-22T19:31:22.9783400Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9783553Z 286 โ const id = setInterval(() => setNow(new Date().toISOString()), 60_000);
2026-10-22T19:31:22.9783622Z โฐโโโโ
2026-10-22T19:31:22.9784271Z 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-22T19:31:22.9784696Z 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-22T19:31:22.9784699Z
2026-10-22T19:31:22.9784913Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9785093Z โญโ[apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx:365:25]
2026-10-22T19:31:22.9785238Z 364 โ // range) the boundary string is identical and the chain would die.
2026-10-22T19:31:22.9785337Z 365 โ }, [nextSnoozeWakeAt, snoozeWakeTick]);
2026-10-22T19:31:22.9785446Z ยท โโโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9785631Z ยท โฐโโ Unnecessary dependency `snoozeWakeTick`
2026-10-22T19:31:22.9785757Z 366 โ const listItems = ((): readonly SidebarListItem[] => {
2026-10-22T19:31:22.9785815Z โฐโโโโ
2026-10-22T19:31:22.9786125Z 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-22T19:31:22.9786458Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9786461Z
2026-10-22T19:31:22.9786648Z โ react(purity): Cannot call impure function during render
2026-10-22T19:31:22.9786828Z โญโ[apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx:356:53]
2026-10-22T19:31:22.9786922Z 355 โ if (Number.isNaN(wakeAtMs)) return;
2026-10-22T19:31:22.9787093Z 356 โ const delayMs = Math.min(Math.max(0, wakeAtMs - Date.now()) + 50, 2_147_483_647);
2026-10-22T19:31:22.9787228Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9787409Z ยท โฐโโ Cannot call impure function
2026-10-22T19:31:22.9787502Z 357 โ const id = setTimeout(() => {
2026-10-22T19:31:22.9787557Z โฐโโโโ
2026-10-22T19:31:22.9787866Z 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-22T19:31:22.9788181Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
2026-10-22T19:31:22.9788184Z
2026-10-22T19:31:22.9788647Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:22.9788857Z โญโ[packages/provider-opencode/src/server/adapter.ts:3755:7]
2026-10-22T19:31:22.9788914Z 3754 โ
2026-10-22T19:31:22.9789128Z 3755 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, OpenCodeAdapterV2DriverEnv> =
2026-10-22T19:31:22.9789210Z ยท โโโฌโโ
2026-10-22T19:31:22.9789349Z ยท โฐโโ 'layer' is declared here
2026-10-22T19:31:22.9789492Z 3756 โ Layer.effect(
2026-10-22T19:31:22.9789553Z โฐโโโโ
2026-10-22T19:31:22.9789672Z help: Consider removing this declaration.
2026-10-22T19:31:22.9789675Z
2026-10-22T19:31:22.9789934Z โ unicorn(prefer-set-has): should be a `Set`, and use `.has()` to check existence or non-existence.
2026-10-22T19:31:22.9790087Z โญโ[apps/web/src/components/chat/useComposerSend.ts:978:13]
2026-10-22T19:31:22.9790224Z 977 โ const changedBeforeDecline = draftChangedSinceSend();
2026-10-22T19:31:22.9790483Z 978 โ โญโโถ const pendingIdsBeforeDecline = pendingApprovalsRef.current.map(
2026-10-22T19:31:22.9790621Z 979 โ โ (approval) => approval.requestId,
2026-10-22T19:31:22.9790763Z 980 โ โฐโโถ );
2026-10-22T19:31:22.9790921Z 981 โ const approvalResponding = approvalsToDecline.some((approval) =>
2026-10-22T19:31:22.9790987Z โฐโโโโ
2026-10-22T19:31:22.9791076Z help: Switch to `Set`
2026-10-22T19:31:22.9791079Z
2026-10-22T19:31:22.9791261Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-22T19:31:22.9791478Z โญโ[packages/provider-opencode/src/server/OpenCodeRuntime.environment.test.ts:53:14]
2026-10-22T19:31:22.9791545Z 52 โ
2026-10-22T19:31:22.9791628Z 53 โ for (const {} of [
2026-10-22T19:31:22.9791713Z ยท โโ
2026-10-22T19:31:22.9791798Z 54 โ { healthy: true },
2026-10-22T19:31:22.9791867Z โฐโโโโ
2026-10-22T19:31:22.9792121Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-22T19:31:22.9792124Z
2026-10-22T19:31:22.9792345Z โ typescript(no-this-alias): Unexpected aliasing of 'this' to local variable.
2026-10-22T19:31:22.9792486Z โญโ[apps/web/src/contextMenuFallback.test.ts:38:9]
2026-10-22T19:31:22.9792563Z 37 โ get isConnected() {
2026-10-22T19:31:22.9792674Z 38 โ let current: FakeElement | null = this;
2026-10-22T19:31:22.9792757Z ยท โโโโโโโ
2026-10-22T19:31:22.9792842Z 39 โ while (current?.parent) {
2026-10-22T19:31:22.9792914Z โฐโโโโ
2026-10-22T19:31:22.9793218Z 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-22T19:31:22.9793221Z
2026-10-22T19:31:22.9793730Z โ 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-22T19:31:22.9793904Z โญโ[packages/client-runtime/src/connection/supervisor.test.ts:135:3]
2026-10-22T19:31:22.9794036Z 134 โ let lastState = yield* SubscriptionRef.get(state);
2026-10-22T19:31:22.9794377Z 135 โ โญโโถ for (let iteration = 0; iteration < 100; iteration += 1) {
2026-10-22T19:31:22.9794629Z 136 โ โ lastState = yield* SubscriptionRef.get(state);
2026-10-22T19:31:22.9794748Z 137 โ โ if (predicate(lastState)) {
2026-10-22T19:31:22.9794857Z 138 โ โ return lastState;
2026-10-22T19:31:22.9794943Z 139 โ โ }
2026-10-22T19:31:22.9795057Z 140 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9795189Z 141 โ โฐโโถ }
2026-10-22T19:31:22.9795274Z 142 โ return yield* Effect.die(
2026-10-22T19:31:22.9795334Z โฐโโโโ
2026-10-22T19:31:22.9795336Z
2026-10-22T19:31:22.9795553Z โ eslint(require-yield): This generator function does not have `yield`
2026-10-22T19:31:22.9795712Z โญโ[packages/provider-acp/src/server/mcpOverAcpBridge.ts:81:78]
2026-10-22T19:31:22.9795776Z 80 โ
2026-10-22T19:31:22.9796066Z 81 โ โญโโถ export const makeAcpMcpOverAcpBridge = Effect.fn("AcpMcpOverAcpBridge.make")(function* (
2026-10-22T19:31:22.9796199Z 82 โ โ options: AcpMcpOverAcpBridgeOptions,
2026-10-22T19:31:22.9796329Z 83 โ โ ): Effect.fn.Return<AcpMcpOverAcpBridge> {
2026-10-22T19:31:22.9796510Z 84 โ โ const fetchImplementation = options.fetchImplementation ?? fetch;
2026-10-22T19:31:22.9796655Z 85 โ โ const connections = new Map<string, Connection>();
2026-10-22T19:31:22.9796731Z 86 โ โ
2026-10-22T19:31:22.9796964Z 87 โ โ const connectionFor = (connectionId: string): Effect.Effect<Connection, AcpMcpOverAcpError> =>
2026-10-22T19:31:22.9797077Z 88 โ โ Effect.suspend(() => {
2026-10-22T19:31:22.9797224Z 89 โ โ const connection = connections.get(connectionId);
2026-10-22T19:31:22.9797348Z 90 โ โ return connection === undefined
2026-10-22T19:31:22.9797578Z 91 โ โ ? Effect.fail(new AcpMcpOverAcpError(`Unknown MCP-over-ACP connection "${connectionId}".`))
2026-10-22T19:31:22.9797694Z 92 โ โ : Effect.succeed(connection);
2026-10-22T19:31:22.9797781Z 93 โ โ });
2026-10-22T19:31:22.9797857Z 94 โ โ
2026-10-22T19:31:22.9797953Z 95 โ โ const send = (
2026-10-22T19:31:22.9798067Z 96 โ โ connection: Connection,
2026-10-22T19:31:22.9798181Z 97 โ โ message: unknown,
2026-10-22T19:31:22.9798357Z 98 โ โ ): Effect.Effect<ReadonlyArray<unknown>, AcpMcpOverAcpError> =>
2026-10-22T19:31:22.9798486Z 99 โ โ connection.mutex.withPermits(1)(
2026-10-22T19:31:22.9798598Z 100 โ โ Effect.gen(function* () {
2026-10-22T19:31:22.9798730Z 101 โ โ const body = JSON.stringify(message);
2026-10-22T19:31:22.9798882Z 102 โ โ if (Buffer.byteLength(body) > MAX_MESSAGE_BYTES) {
2026-10-22T19:31:22.9799111Z 103 โ โ return yield* Effect.fail(new AcpMcpOverAcpError("MCP-over-ACP message exceeds 8 MiB."));
2026-10-22T19:31:22.9799194Z 104 โ โ }
2026-10-22T19:31:22.9799396Z 105 โ โ const response = yield* Effect.tryPromise({
2026-10-22T19:31:22.9799544Z 106 โ โ try: (signal) =>
2026-10-22T19:31:22.9799687Z 107 โ โ fetchImplementation(options.endpoint, {
2026-10-22T19:31:22.9799793Z 108 โ โ method: "POST",
2026-10-22T19:31:22.9799896Z 109 โ โ signal,
2026-10-22T19:31:22.9800004Z 110 โ โ headers: {
2026-10-22T19:31:22.9800144Z 111 โ โ "content-type": "application/json",
2026-10-22T19:31:22.9800295Z 112 โ โ accept: "application/json, text/event-stream",
2026-10-22T19:31:22.9800442Z 113 โ โ authorization: options.authorization,
2026-10-22T19:31:22.9800585Z 114 โ โ ...(connection.sessionId === null
2026-10-22T19:31:22.9800698Z 115 โ โ ? {}
2026-10-22T19:31:22.9800852Z 116 โ โ : { "mcp-session-id": connection.sessionId }),
2026-10-22T19:31:22.9800998Z 117 โ โ ...(connection.protocolVersion === null
2026-10-22T19:31:22.9801098Z 118 โ โ ? {}
2026-10-22T19:31:22.9801278Z 119 โ โ : { "mcp-protocol-version": connection.protocolVersion }),
2026-10-22T19:31:22.9801368Z 120 โ โ },
2026-10-22T19:31:22.9801466Z 121 โ โ body,
2026-10-22T19:31:22.9801559Z 122 โ โ }),
2026-10-22T19:31:22.9801670Z 123 โ โ catch: bridgeError,
2026-10-22T19:31:22.9801763Z 124 โ โ });
2026-10-22T19:31:22.9801993Z 125 โ โ connection.sessionId = response.headers.get("mcp-session-id") ?? connection.sessionId;
2026-10-22T19:31:22.9802102Z 126 โ โ if (!response.ok) {
2026-10-22T19:31:22.9802216Z 127 โ โ yield* Effect.promise(
2026-10-22T19:31:22.9802415Z 128 โ โ () => response.body?.cancel().catch(() => undefined) ?? Promise.resolve(),
2026-10-22T19:31:22.9802501Z 129 โ โ );
2026-10-22T19:31:22.9802622Z 130 โ โ return yield* Effect.fail(
2026-10-22T19:31:22.9802843Z 131 โ โ new AcpMcpOverAcpError(`T3 Code MCP endpoint responded with HTTP ${response.status}.`),
2026-10-22T19:31:22.9802932Z 132 โ โ );
2026-10-22T19:31:22.9803022Z 133 โ โ }
2026-10-22T19:31:22.9803250Z 134 โ โ const payloads = [...(yield* Stream.runCollect(responsePayloads(response, bridgeError)))];
2026-10-22T19:31:22.9803388Z 135 โ โ for (const payload of payloads) {
2026-10-22T19:31:22.9803621Z 136 โ โ connection.protocolVersion = protocolVersionOf(payload) ?? connection.protocolVersion;
2026-10-22T19:31:22.9803704Z 137 โ โ }
2026-10-22T19:31:22.9803812Z 138 โ โ return payloads;
2026-10-22T19:31:22.9803951Z 139 โ โ }).pipe(Effect.mapError(bridgeError)),
2026-10-22T19:31:22.9804042Z 140 โ โ );
2026-10-22T19:31:22.9804118Z 141 โ โ
2026-10-22T19:31:22.9804376Z 142 โ โ const disconnect = Effect.fn("mcpOverAcpBridge.disconnect")(function* (
2026-10-22T19:31:22.9804591Z 143 โ โ request: AcpSchema.DisconnectMcpRequest,
2026-10-22T19:31:22.9804844Z 144 โ โ ): Effect.fn.Return<AcpSchema.DisconnectMcpResponse, AcpMcpOverAcpError> {
2026-10-22T19:31:22.9805015Z 145 โ โ const connection = yield* connectionFor(request.connectionId);
2026-10-22T19:31:22.9805158Z 146 โ โ connections.delete(request.connectionId);
2026-10-22T19:31:22.9805295Z 147 โ โ const sessionId = connection.sessionId;
2026-10-22T19:31:22.9805407Z 148 โ โ if (sessionId !== null) {
2026-10-22T19:31:22.9805546Z 149 โ โ const response = yield* Effect.tryPromise({
2026-10-22T19:31:22.9805652Z 150 โ โ try: (signal) =>
2026-10-22T19:31:22.9805797Z 151 โ โ fetchImplementation(options.endpoint, {
2026-10-22T19:31:22.9805917Z 152 โ โ method: "DELETE",
2026-10-22T19:31:22.9806014Z 153 โ โ signal,
2026-10-22T19:31:22.9806117Z 154 โ โ headers: {
2026-10-22T19:31:22.9806258Z 155 โ โ authorization: options.authorization,
2026-10-22T19:31:22.9806386Z 156 โ โ "mcp-session-id": sessionId,
2026-10-22T19:31:22.9806528Z 157 โ โ ...(connection.protocolVersion === null
2026-10-22T19:31:22.9806628Z 158 โ โ ? {}
2026-10-22T19:31:22.9806804Z 159 โ โ : { "mcp-protocol-version": connection.protocolVersion }),
2026-10-22T19:31:22.9806902Z 160 โ โ },
2026-10-22T19:31:22.9806995Z 161 โ โ }),
2026-10-22T19:31:22.9807101Z 162 โ โ catch: bridgeError,
2026-10-22T19:31:22.9807192Z 163 โ โ });
2026-10-22T19:31:22.9807336Z 164 โ โ if (!response.ok && response.status !== 404) {
2026-10-22T19:31:22.9807459Z 165 โ โ return yield* Effect.fail(
2026-10-22T19:31:22.9807578Z 166 โ โ new AcpMcpOverAcpError(
2026-10-22T19:31:22.9807775Z 167 โ โ `T3 Code MCP endpoint rejected disconnect with HTTP ${response.status}.`,
2026-10-22T19:31:22.9807867Z 168 โ โ ),
2026-10-22T19:31:22.9807953Z 169 โ โ );
2026-10-22T19:31:22.9808040Z 170 โ โ }
2026-10-22T19:31:22.9808157Z 171 โ โ yield* Effect.promise(
2026-10-22T19:31:22.9808353Z 172 โ โ () => response.body?.cancel().catch(() => undefined) ?? Promise.resolve(),
2026-10-22T19:31:22.9808440Z 173 โ โ );
2026-10-22T19:31:22.9808521Z 174 โ โ }
2026-10-22T19:31:22.9808617Z 175 โ โ return {};
2026-10-22T19:31:22.9808698Z 176 โ โ });
2026-10-22T19:31:22.9808771Z 177 โ โ
2026-10-22T19:31:22.9808862Z 178 โ โ return {
2026-10-22T19:31:22.9809053Z 179 โ โ connect: Effect.fn("mcpOverAcpBridge.connect")(function* (request) {
2026-10-22T19:31:22.9809191Z 180 โ โ if (request.serverId !== "t3-code") {
2026-10-22T19:31:22.9809379Z 181 โ โ return yield* Effect.fail(
2026-10-22T19:31:22.9809615Z 182 โ โ new AcpMcpOverAcpError(`Unknown ACP MCP server "${request.serverId}".`),
2026-10-22T19:31:22.9809705Z 183 โ โ );
2026-10-22T19:31:22.9809789Z 184 โ โ }
2026-10-22T19:31:22.9809925Z 185 โ โ if (connections.size >= MAX_CONNECTIONS) {
2026-10-22T19:31:22.9810147Z 186 โ โ return yield* Effect.fail(new AcpMcpOverAcpError("Too many MCP-over-ACP connections."));
2026-10-22T19:31:22.9810232Z 187 โ โ }
2026-10-22T19:31:22.9810401Z 188 โ โ const connectionId = yield* options.allocateConnectionId;
2026-10-22T19:31:22.9810526Z 189 โ โ connections.set(connectionId, {
2026-10-22T19:31:22.9810659Z 190 โ โ mutex: yield* Semaphore.make(1),
2026-10-22T19:31:22.9810769Z 191 โ โ sessionId: null,
2026-10-22T19:31:22.9810884Z 192 โ โ protocolVersion: null,
2026-10-22T19:31:22.9810993Z 193 โ โ nextRequestId: 0,
2026-10-22T19:31:22.9811074Z 194 โ โ });
2026-10-22T19:31:22.9811186Z 195 โ โ return { connectionId };
2026-10-22T19:31:22.9811272Z 196 โ โ }),
2026-10-22T19:31:22.9811458Z 197 โ โ message: Effect.fn("mcpOverAcpBridge.message")(function* (request) {
2026-10-22T19:31:22.9811629Z 198 โ โ const connection = yield* connectionFor(request.connectionId);
2026-10-22T19:31:22.9811763Z 199 โ โ const id = ++connection.nextRequestId;
2026-10-22T19:31:22.9811908Z 200 โ โ const payloads = yield* send(connection, {
2026-10-22T19:31:22.9812019Z 201 โ โ jsonrpc: "2.0",
2026-10-22T19:31:22.9812106Z 202 โ โ id,
2026-10-22T19:31:22.9812220Z 203 โ โ method: request.method,
2026-10-22T19:31:22.9812392Z 204 โ โ ...(request.params == null ? {} : { params: request.params }),
2026-10-22T19:31:22.9812478Z 205 โ โ });
2026-10-22T19:31:22.9812678Z 206 โ โ const response = payloads.find((payload) => asEnvelope(payload)?.id === id);
2026-10-22T19:31:22.9812811Z 207 โ โ const envelope = asEnvelope(response);
2026-10-22T19:31:22.9812923Z 208 โ โ if (envelope === null) {
2026-10-22T19:31:22.9813250Z 209 โ โ return yield* Effect.fail(
2026-10-22T19:31:22.9813484Z 210 โ โ new AcpMcpOverAcpError("MCP server did not return a matching response."),
2026-10-22T19:31:22.9813571Z 211 โ โ );
2026-10-22T19:31:22.9813654Z 212 โ โ }
2026-10-22T19:31:22.9813780Z 213 โ โ if (envelope.error !== undefined) {
2026-10-22T19:31:22.9813985Z 214 โ โ return yield* Effect.fail(new AcpMcpOverAcpError(errorMessage(envelope.error)));
2026-10-22T19:31:22.9814072Z 215 โ โ }
2026-10-22T19:31:22.9814258Z 216 โ โ return (envelope.result ?? null) as AcpSchema.MessageMcpResponse;
2026-10-22T19:31:22.9814341Z 217 โ โ }),
2026-10-22T19:31:22.9814605Z 218 โ โ notification: Effect.fn("mcpOverAcpBridge.notification")(function* (request) {
2026-10-22T19:31:22.9814811Z 219 โ โ const connection = yield* connectionFor(request.connectionId);
2026-10-22T19:31:22.9814924Z 220 โ โ yield* send(connection, {
2026-10-22T19:31:22.9815031Z 221 โ โ jsonrpc: "2.0",
2026-10-22T19:31:22.9815142Z 222 โ โ method: request.method,
2026-10-22T19:31:22.9815310Z 223 โ โ ...(request.params == null ? {} : { params: request.params }),
2026-10-22T19:31:22.9815401Z 224 โ โ });
2026-10-22T19:31:22.9815483Z 225 โ โ }),
2026-10-22T19:31:22.9815577Z 226 โ โ disconnect,
2026-10-22T19:31:22.9815697Z 227 โ โ dispose: Effect.suspend(() =>
2026-10-22T19:31:22.9815809Z 228 โ โ Effect.forEach(
2026-10-22T19:31:22.9815927Z 229 โ โ [...connections.keys()],
2026-10-22T19:31:22.9816111Z 230 โ โ (connectionId) => disconnect({ connectionId }).pipe(Effect.ignore),
2026-10-22T19:31:22.9816223Z 231 โ โ { discard: true },
2026-10-22T19:31:22.9816310Z 232 โ โ ),
2026-10-22T19:31:22.9816392Z 233 โ โ ),
2026-10-22T19:31:22.9816475Z 234 โ โ };
2026-10-22T19:31:22.9816610Z 235 โ โฐโโถ });
2026-10-22T19:31:22.9816675Z โฐโโโโ
2026-10-22T19:31:22.9816950Z help: Add a `yield` expression inside the generator body, or convert it to a regular function if iteration behavior is not needed.
2026-10-22T19:31:22.9816953Z
2026-10-22T19:31:22.9817187Z โ eslint(no-unused-vars): Function 'summarizePayload' is declared but never used.
2026-10-22T19:31:22.9817338Z โญโ[packages/provider-acp/src/server/nativeLogging.ts:22:10]
2026-10-22T19:31:22.9817400Z 21 โ
2026-10-22T19:31:22.9817569Z 22 โ function summarizePayload(payload: unknown): Readonly<Record<string, unknown>> {
2026-10-22T19:31:22.9817675Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9817839Z ยท โฐโโ 'summarizePayload' is declared here
2026-10-22T19:31:22.9817955Z 23 โ if (payload === null) return { valueType: "null" };
2026-10-22T19:31:22.9818020Z โฐโโโโ
2026-10-22T19:31:22.9818139Z help: Consider removing this declaration.
2026-10-22T19:31:22.9818142Z
2026-10-22T19:31:22.9818475Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9818707Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:335:7]
2026-10-22T19:31:22.9818772Z 330 โ };
2026-10-22T19:31:22.9818847Z 331 โ useEffect(() => {
2026-10-22T19:31:22.9818923Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9819071Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9819179Z 332 โ if (!guidesEnabled && section === "guide") {
2026-10-22T19:31:22.9819286Z 333 โ requestedSection.current = "overview";
2026-10-22T19:31:22.9819466Z 334 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-22T19:31:22.9819550Z 335 โ setSection("overview");
2026-10-22T19:31:22.9819639Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9819831Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9819894Z 336 โ }
2026-10-22T19:31:22.9819953Z โฐโโโโ
2026-10-22T19:31:22.9820594Z 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-22T19:31:22.9820943Z 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-22T19:31:22.9820946Z
2026-10-22T19:31:22.9821165Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-22T19:31:22.9821352Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:337:6]
2026-10-22T19:31:22.9821463Z 332 โ if (!guidesEnabled && section === "guide") {
2026-10-22T19:31:22.9821570Z 333 โ requestedSection.current = "overview";
2026-10-22T19:31:22.9821662Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9822138Z ยท โฐโโ 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-22T19:31:22.9822313Z 334 โ currentScrollOffset.current = scrollOffsets.current.overview ?? -insets.top;
2026-10-22T19:31:22.9822481Z ยท โโโโโโโโโโฌโโโโโโโโโ โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9823027Z ยท โ โฐโโ 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-22T19:31:22.9823530Z ยท โฐโโ 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-22T19:31:22.9823610Z 335 โ setSection("overview");
2026-10-22T19:31:22.9823679Z 336 โ }
2026-10-22T19:31:22.9823795Z 337 โ }, [guidesEnabled, section, insets.top]);
2026-10-22T19:31:22.9823927Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9824202Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9824331Z 338 โ const tabContent = activityContent;
2026-10-22T19:31:22.9824394Z โฐโโโโ
2026-10-22T19:31:22.9824651Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-22T19:31:22.9824988Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9824994Z
2026-10-22T19:31:22.9825211Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-22T19:31:22.9825398Z โญโ[apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsx:873:6]
2026-10-22T19:31:22.9825462Z 856 โ if (
2026-10-22T19:31:22.9825590Z 857 โ lastSelection.current.path === route.params.path &&
2026-10-22T19:31:22.9825680Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9826150Z ยท โฐโโ 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-22T19:31:22.9826287Z 858 โ lastSelection.current.id === route.params.fileSelectionId
2026-10-22T19:31:22.9826348Z 859 โ )
2026-10-22T19:31:22.9826412Z 860 โ return;
2026-10-22T19:31:22.9826605Z 861 โ lastSelection.current = { path: route.params.path, id: route.params.fileSelectionId };
2026-10-22T19:31:22.9826752Z 862 โ if (route.params.focus) navigation.setParams({ focus: undefined });
2026-10-22T19:31:22.9826848Z 863 โ setJumpPath(route.params.path);
2026-10-22T19:31:22.9826927Z 864 โ setSelectedRowId(null);
2026-10-22T19:31:22.9827015Z 865 โ jumpStarted.current = false;
2026-10-22T19:31:22.9827180Z 866 โ const file = data.files.find((entry) => entry.path === route.params.path);
2026-10-22T19:31:22.9827286Z 867 โ if (!file || !nativeView.current) return;
2026-10-22T19:31:22.9827382Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9827855Z ยท โฐโโ 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-22T19:31:22.9827992Z 868 โ setCollapsedIds((ids) => ids.filter((id) => id !== file.id));
2026-10-22T19:31:22.9828079Z 869 โ jumpStarted.current = true;
2026-10-22T19:31:22.9828279Z 870 โ void nativeView.current.scrollToFile(file.id, false).catch(() => {
2026-10-22T19:31:22.9828374Z 871 โ jumpStarted.current = false;
2026-10-22T19:31:22.9828445Z 872 โ });
2026-10-22T19:31:22.9828660Z 873 โ }, [route.params.path, route.params.fileSelectionId, route.params.focus, data.files, navigation]);
2026-10-22T19:31:22.9828880Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9829120Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9829240Z 874 โ const appliedFilter = useRef(filter.hideTestFiles);
2026-10-22T19:31:22.9829302Z โฐโโโโ
2026-10-22T19:31:22.9829714Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-22T19:31:22.9830052Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9830159Z
2026-10-22T19:31:22.9830718Z โ 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-22T19:31:22.9830866Z โญโ[packages/client-runtime/src/rpc/client.test.ts:131:9]
2026-10-22T19:31:22.9830939Z 130 โ ) {
2026-10-22T19:31:22.9831169Z 131 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:22.9831303Z 132 โ โ if (subscriptions.length >= count) {
2026-10-22T19:31:22.9831406Z 133 โ โ return;
2026-10-22T19:31:22.9831497Z 134 โ โ }
2026-10-22T19:31:22.9831621Z 135 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9831764Z 136 โ โฐโโถ }
2026-10-22T19:31:22.9831944Z 137 โ return yield* Effect.die(new Error(`Expected ${count} durable subscriptions.`));
2026-10-22T19:31:22.9832001Z โฐโโโโ
2026-10-22T19:31:22.9832004Z
2026-10-22T19:31:22.9832503Z โ 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-22T19:31:22.9832644Z โญโ[packages/client-runtime/src/rpc/client.test.ts:252:7]
2026-10-22T19:31:22.9832821Z 251 โ yield* SubscriptionRef.set(activeSession, Option.some(session(firstClient)));
2026-10-22T19:31:22.9833105Z 252 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 1; attempt += 1) {
2026-10-22T19:31:22.9833224Z 253 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9833368Z 254 โ โฐโโถ }
2026-10-22T19:31:22.9833500Z 255 โ yield* SubscriptionRef.set(activeSession, Option.none());
2026-10-22T19:31:22.9833560Z โฐโโโโ
2026-10-22T19:31:22.9833562Z
2026-10-22T19:31:22.9834061Z โ 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-22T19:31:22.9834211Z โญโ[packages/client-runtime/src/rpc/client.test.ts:258:7]
2026-10-22T19:31:22.9834269Z 257 โ
2026-10-22T19:31:22.9834596Z 258 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-22T19:31:22.9834734Z 259 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9834877Z 260 โ โฐโโถ }
2026-10-22T19:31:22.9834987Z 261 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-22T19:31:22.9835055Z โฐโโโโ
2026-10-22T19:31:22.9835058Z
2026-10-22T19:31:22.9835552Z โ 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-22T19:31:22.9835700Z โญโ[packages/client-runtime/src/rpc/client.test.ts:322:7]
2026-10-22T19:31:22.9835824Z 321 โ );
2026-10-22T19:31:22.9836137Z 322 โ โญโโถ for (let attempt = 0; attempt < 100 && observedFailures.length < 1; attempt += 1) {
2026-10-22T19:31:22.9836252Z 323 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9836393Z 324 โ โฐโโถ }
2026-10-22T19:31:22.9836459Z 325 โ
2026-10-22T19:31:22.9836513Z โฐโโโโ
2026-10-22T19:31:22.9836516Z
2026-10-22T19:31:22.9837010Z โ 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-22T19:31:22.9837151Z โญโ[packages/client-runtime/src/rpc/client.test.ts:330:7]
2026-10-22T19:31:22.9837334Z 329 โ yield* SubscriptionRef.set(activeSession, Option.some(session(secondClient)));
2026-10-22T19:31:22.9837599Z 330 โ โญโโถ for (let attempt = 0; attempt < 100 && subscriptions.length < 2; attempt += 1) {
2026-10-22T19:31:22.9837708Z 331 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9837847Z 332 โ โฐโโถ }
2026-10-22T19:31:22.9837960Z 333 โ yield* Fiber.interrupt(subscriptionFiber);
2026-10-22T19:31:22.9838020Z โฐโโโโ
2026-10-22T19:31:22.9838022Z
2026-10-22T19:31:22.9838510Z โ 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-22T19:31:22.9838664Z โญโ[packages/client-runtime/src/rpc/session.test.ts:226:3]
2026-10-22T19:31:22.9838732Z 225 โ ) {
2026-10-22T19:31:22.9838946Z 226 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:22.9839062Z 227 โ โ const socket = sockets[index];
2026-10-22T19:31:22.9839160Z 228 โ โ if (socket) {
2026-10-22T19:31:22.9839263Z 229 โ โ return socket;
2026-10-22T19:31:22.9839346Z 230 โ โ }
2026-10-22T19:31:22.9839452Z 231 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9839588Z 232 โ โฐโโถ }
2026-10-22T19:31:22.9839845Z 233 โ return yield* Effect.die(new Error("Expected the RPC protocol to create a websocket."));
2026-10-22T19:31:22.9839940Z โฐโโโโ
2026-10-22T19:31:22.9839943Z
2026-10-22T19:31:22.9840588Z โ 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-22T19:31:22.9840732Z โญโ[packages/client-runtime/src/rpc/session.test.ts:240:3]
2026-10-22T19:31:22.9840795Z 239 โ ) {
2026-10-22T19:31:22.9841008Z 240 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:22.9841237Z 241 โ โ const request = socket.sent.map((message) => decodeJson(message)).filter(isRpcRequest)[index];
2026-10-22T19:31:22.9841335Z 242 โ โ if (request) {
2026-10-22T19:31:22.9841444Z 243 โ โ return request;
2026-10-22T19:31:22.9841528Z 244 โ โ }
2026-10-22T19:31:22.9841640Z 245 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9841770Z 246 โ โฐโโถ }
2026-10-22T19:31:22.9841947Z 247 โ return yield* Effect.die(new Error("Expected the RPC protocol to send a request."));
2026-10-22T19:31:22.9842006Z โฐโโโโ
2026-10-22T19:31:22.9842009Z
2026-10-22T19:31:22.9842237Z โ eslint(no-unused-vars): Function 'describeSchedule' is declared but never used.
2026-10-22T19:31:22.9842371Z โญโ[apps/server/src/scheduledTasks/Schedule.ts:79:10]
2026-10-22T19:31:22.9842430Z 78 โ
2026-10-22T19:31:22.9842577Z 79 โ function describeSchedule(schedule: ScheduledTaskSchedule): string {
2026-10-22T19:31:22.9842683Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9842845Z ยท โฐโโ 'describeSchedule' is declared here
2026-10-22T19:31:22.9842963Z 80 โ if (schedule.type === "webhook") return "On webhook";
2026-10-22T19:31:22.9843024Z โฐโโโโ
2026-10-22T19:31:22.9843143Z help: Consider removing this declaration.
2026-10-22T19:31:22.9843145Z
2026-10-22T19:31:22.9843349Z โ oxc(no-accumulating-spread): Do not spread accumulators in loops
2026-10-22T19:31:22.9843492Z โญโ[packages/client-runtime/src/state/shell.ts:189:5]
2026-10-22T19:31:22.9843609Z 186 โ let waiting = yield* Ref.get(awaitingCompletion);
2026-10-22T19:31:22.9843686Z 187 โ let next = initial;
2026-10-22T19:31:22.9843762Z ยท โโโฌโ
2026-10-22T19:31:22.9843900Z ยท โฐโโ From this accumulator
2026-10-22T19:31:22.9843995Z 188 โ let receivedSnapshot = false;
2026-10-22T19:31:22.9844081Z 189 โ for (const item of items) {
2026-10-22T19:31:22.9844154Z ยท โโฌโ
2026-10-22T19:31:22.9844270Z ยท โฐโโ For this loop
2026-10-22T19:31:22.9844368Z 190 โ if (item.kind === "synchronized") {
2026-10-22T19:31:22.9844443Z 191 โ waiting = false;
2026-10-22T19:31:22.9844577Z 192 โ if (Option.isSome(next.snapshot)) {
2026-10-22T19:31:22.9844728Z 193 โ next = { ...next, status: "live", error: Option.none() };
2026-10-22T19:31:22.9844824Z ยท โโโโฌโโโ
2026-10-22T19:31:22.9844963Z ยท โฐโโ From this spread
2026-10-22T19:31:22.9845025Z 194 โ }
2026-10-22T19:31:22.9845081Z โฐโโโโ
2026-10-22T19:31:22.9845312Z help: Consider using `Object.assign()` to mutate the accumulator instead.
2026-10-22T19:31:22.9845530Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-22T19:31:22.9845532Z
2026-10-22T19:31:22.9846025Z โ 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-22T19:31:22.9846222Z โญโ[apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts:521:13]
2026-10-22T19:31:22.9846305Z 520 โ })).delivery;
2026-10-22T19:31:22.9846521Z 521 โ โญโโถ while (delivery.outcome === "accepted") {
2026-10-22T19:31:22.9846651Z 522 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9846810Z 523 โ โ delivery = (yield* service.getWebhookDelivery({
2026-10-22T19:31:22.9846921Z 524 โ โ id: task.id,
2026-10-22T19:31:22.9847049Z 525 โ โ deliveryId: deliveryId!,
2026-10-22T19:31:22.9847157Z 526 โ โ })).delivery;
2026-10-22T19:31:22.9847299Z 527 โ โฐโโถ }
2026-10-22T19:31:22.9847426Z 528 โ assert.equal(delivery.outcome, "dispatch_failed");
2026-10-22T19:31:22.9847485Z โฐโโโโ
2026-10-22T19:31:22.9847487Z
2026-10-22T19:31:22.9847739Z โ eslint(no-unused-vars): Function 'resolveThreadWorkspaceCwd' is declared but never used.
2026-10-22T19:31:22.9847871Z โญโ[apps/server/src/checkpointing/Utils.ts:12:10]
2026-10-22T19:31:22.9847934Z 11 โ
2026-10-22T19:31:22.9848041Z 12 โ function resolveThreadWorkspaceCwd(input: {
2026-10-22T19:31:22.9848154Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9848335Z ยท โฐโโ 'resolveThreadWorkspaceCwd' is declared here
2026-10-22T19:31:22.9848409Z 13 โ readonly thread: {
2026-10-22T19:31:22.9848466Z โฐโโโโ
2026-10-22T19:31:22.9848582Z help: Consider removing this declaration.
2026-10-22T19:31:22.9848585Z
2026-10-22T19:31:22.9848777Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-22T19:31:22.9848954Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:100:85]
2026-10-22T19:31:22.9849076Z 99 โ const startEditor = startScheduledTaskEditor;
2026-10-22T19:31:22.9849281Z 100 โ const resetEditor = useCallback(() => startEditor(defaultEditor), [defaultEditor, startEditor]);
2026-10-22T19:31:22.9849435Z ยท โโโโโโฌโโโโโ
2026-10-22T19:31:22.9849671Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-22T19:31:22.9849764Z 101 โ const readEditor = useCallback(
2026-10-22T19:31:22.9849823Z โฐโโโโ
2026-10-22T19:31:22.9850164Z 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-22T19:31:22.9850553Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9850601Z
2026-10-22T19:31:22.9850804Z โ react(memo-dependencies): Found extra memoization dependencies
2026-10-22T19:31:22.9850977Z โญโ[apps/mobile/src/features/settings/scheduled-task-editor.tsx:121:7]
2026-10-22T19:31:22.9851048Z 120 โ setEditor,
2026-10-22T19:31:22.9851136Z 121 โ startEditor,
2026-10-22T19:31:22.9851230Z ยท โโโโโโฌโโโโโ
2026-10-22T19:31:22.9851391Z ยท โฐโโ Unnecessary dependency `startEditor`
2026-10-22T19:31:22.9851462Z 122 โ hasChanges,
2026-10-22T19:31:22.9851515Z โฐโโโโ
2026-10-22T19:31:22.9851853Z 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-22T19:31:22.9852193Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9852199Z
2026-10-22T19:31:22.9852469Z โ eslint(no-unused-vars): Function 'normalizeTerminalContextSelection' is declared but never used.
2026-10-22T19:31:22.9852593Z โญโ[apps/web/src/lib/terminalContext.ts:56:10]
2026-10-22T19:31:22.9852647Z 55 โ
2026-10-22T19:31:22.9852755Z 56 โ function normalizeTerminalContextSelection(
2026-10-22T19:31:22.9852877Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9853083Z ยท โฐโโ 'normalizeTerminalContextSelection' is declared here
2026-10-22T19:31:22.9853176Z 57 โ selection: TerminalContextSelection,
2026-10-22T19:31:22.9853234Z โฐโโโโ
2026-10-22T19:31:22.9853355Z help: Consider removing this declaration.
2026-10-22T19:31:22.9853362Z
2026-10-22T19:31:22.9853859Z โ 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-22T19:31:22.9854018Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:169:7]
2026-10-22T19:31:22.9854102Z 168 โ });
2026-10-22T19:31:22.9854316Z 169 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-22T19:31:22.9854560Z 170 โ โ if ((yield* SubscriptionRef.get(shellState)).status === "synchronizing") break;
2026-10-22T19:31:22.9854719Z 171 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9854863Z 172 โ โฐโโถ }
2026-10-22T19:31:22.9854929Z 173 โ
2026-10-22T19:31:22.9854987Z โฐโโโโ
2026-10-22T19:31:22.9854990Z
2026-10-22T19:31:22.9855482Z โ 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-22T19:31:22.9855638Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:178:7]
2026-10-22T19:31:22.9855762Z 177 โ yield* Deferred.succeed(releaseSave, undefined);
2026-10-22T19:31:22.9855971Z 178 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-22T19:31:22.9856180Z 179 โ โ if ((yield* Ref.get(saved)).length > 0) break;
2026-10-22T19:31:22.9856327Z 180 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9856467Z 181 โ โฐโโถ }
2026-10-22T19:31:22.9856526Z 182 โ
2026-10-22T19:31:22.9856582Z โฐโโโโ
2026-10-22T19:31:22.9856585Z
2026-10-22T19:31:22.9857073Z โ 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-22T19:31:22.9857232Z โญโ[packages/client-runtime/src/state/shell-sync.test.ts:307:7]
2026-10-22T19:31:22.9857373Z 306 โ yield* Deferred.succeed(releaseUnenrichedSave, undefined);
2026-10-22T19:31:22.9857589Z 307 โ โญโโถ for (let index = 0; index < 100; index += 1) {
2026-10-22T19:31:22.9857738Z 308 โ โ const values = yield* Ref.get(saved);
2026-10-22T19:31:22.9857942Z 309 โ โ if (values.length > 0 && values.at(-1)?.projects[0]?.repositoryIdentity != null) {
2026-10-22T19:31:22.9858039Z 310 โ โ break;
2026-10-22T19:31:22.9858130Z 311 โ โ }
2026-10-22T19:31:22.9858248Z 312 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9858387Z 313 โ โฐโโถ }
2026-10-22T19:31:22.9858454Z 314 โ
2026-10-22T19:31:22.9858513Z โฐโโโโ
2026-10-22T19:31:22.9858516Z
2026-10-22T19:31:22.9858744Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-22T19:31:22.9858885Z โญโ[packages/client-runtime/src/state/usageAccess.ts:3:8]
2026-10-22T19:31:22.9858972Z 2 โ AuthDiagnosticsReadScope,
2026-10-22T19:31:22.9859051Z 3 โ type AuthSessionState,
2026-10-22T19:31:22.9859147Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9859309Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-22T19:31:22.9859389Z 4 โ sessionGrantsScope,
2026-10-22T19:31:22.9859449Z โฐโโโโ
2026-10-22T19:31:22.9859560Z help: Consider removing this import.
2026-10-22T19:31:22.9859562Z
2026-10-22T19:31:22.9860058Z โ 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-22T19:31:22.9860230Z โญโ[packages/client-runtime/src/state/threads-sync.test.ts:1228:7]
2026-10-22T19:31:22.9860335Z 1227 โ yield* harness.replaceSession;
2026-10-22T19:31:22.9860561Z 1228 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:22.9860730Z 1229 โ โ if ((yield* Ref.get(harness.subscriptionCount)) >= 2) {
2026-10-22T19:31:22.9860824Z 1230 โ โ break;
2026-10-22T19:31:22.9860913Z 1231 โ โ }
2026-10-22T19:31:22.9861027Z 1232 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9861173Z 1233 โ โฐโโถ }
2026-10-22T19:31:22.9861253Z 1234 โ yield* Queue.offer(
2026-10-22T19:31:22.9861377Z โฐโโโโ
2026-10-22T19:31:22.9861434Z
2026-10-22T19:31:22.9861924Z โ 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-22T19:31:22.9862089Z โญโ[packages/client-runtime/src/state/threads-sync.test.ts:1337:7]
2026-10-22T19:31:22.9862185Z 1336 โ yield* harness.replaceSession;
2026-10-22T19:31:22.9862406Z 1337 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:22.9862582Z 1338 โ โ if ((yield* Ref.get(harness.subscriptionCount)) >= 2) break;
2026-10-22T19:31:22.9862696Z 1339 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:22.9862845Z 1340 โ โฐโโถ }
2026-10-22T19:31:22.9862990Z 1341 โ expect(yield* Ref.get(harness.subscriptionCount)).toBe(2);
2026-10-22T19:31:22.9863050Z โฐโโโโ
2026-10-22T19:31:22.9863053Z
2026-10-22T19:31:22.9863263Z โ eslint(no-unused-vars): Identifier 'Arr' is imported but never used.
2026-10-22T19:31:22.9863408Z โญโ[packages/client-runtime/src/state/threadSort.ts:4:13]
2026-10-22T19:31:22.9863532Z 3 โ import type { EnvironmentThreadShell } from "./models.ts";
2026-10-22T19:31:22.9863622Z 4 โ import * as Arr from "effect/Array";
2026-10-22T19:31:22.9863703Z ยท โโฌโ
2026-10-22T19:31:22.9863840Z ยท โฐโโ 'Arr' is imported here
2026-10-22T19:31:22.9863928Z 5 โ import * as Order from "effect/Order";
2026-10-22T19:31:22.9863990Z โฐโโโโ
2026-10-22T19:31:22.9864106Z help: Consider removing this import.
2026-10-22T19:31:22.9864111Z
2026-10-22T19:31:22.9864320Z โ eslint(no-unused-vars): Identifier 'Order' is imported but never used.
2026-10-22T19:31:22.9864457Z โญโ[packages/client-runtime/src/state/threadSort.ts:5:13]
2026-10-22T19:31:22.9864563Z 4 โ import * as Arr from "effect/Array";
2026-10-22T19:31:22.9864685Z 5 โ import * as Order from "effect/Order";
2026-10-22T19:31:22.9864766Z ยท โโโฌโโ
2026-10-22T19:31:22.9864904Z ยท โฐโโ 'Order' is imported here
2026-10-22T19:31:22.9864962Z 6 โ
2026-10-22T19:31:22.9865018Z โฐโโโโ
2026-10-22T19:31:22.9865123Z help: Consider removing this import.
2026-10-22T19:31:22.9865129Z
2026-10-22T19:31:22.9865315Z โ eslint(no-control-regex): Unexpected control character
2026-10-22T19:31:22.9865530Z โญโ[apps/mobile/src/features/settings/SettingsProviderAccountsRouteScreen.tsx:220:46]
2026-10-22T19:31:22.9865683Z 219 โ <Text selectable className="font-mono text-sm text-foreground">
2026-10-22T19:31:22.9865837Z 220 โ {interaction.output.replace(/\x1b\[[0-?]*[ -/]*[@-~]/g, "")}
2026-10-22T19:31:22.9865952Z ยท โโโฌโ
2026-10-22T19:31:22.9866136Z ยท โฐโโ 'U+001B' is a control character.
2026-10-22T19:31:22.9866207Z 221 โ </Text>
2026-10-22T19:31:22.9866266Z โฐโโโโ
2026-10-22T19:31:22.9866516Z help: Avoid matching control characters in regular expressions. If intentional, disable this rule for the expression.
2026-10-22T19:31:22.9866518Z
2026-10-22T19:31:22.9866858Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:22.9867037Z โญโ[packages/provider-grok/src/server/adapter.ts:408:7]
2026-10-22T19:31:22.9867102Z 407 โ
2026-10-22T19:31:22.9867186Z 408 โ const layer: Layer.Layer<
2026-10-22T19:31:22.9867266Z ยท โโโฌโโ
2026-10-22T19:31:22.9867404Z ยท โฐโโ 'layer' is declared here
2026-10-22T19:31:22.9867511Z 409 โ ProviderAdapter.ProviderAdapterV2,
2026-10-22T19:31:22.9867564Z โฐโโโโ
2026-10-22T19:31:22.9867681Z help: Consider removing this declaration.
2026-10-22T19:31:22.9867684Z
2026-10-22T19:31:22.9867968Z โ eslint(no-unused-vars): Function 'promptResponseHasMissingXAiStopReason' is declared but never used.
2026-10-22T19:31:22.9868139Z โญโ[packages/provider-grok/src/server/xaiAcpExtension.ts:1620:10]
2026-10-22T19:31:22.9868199Z 1619 โ
2026-10-22T19:31:22.9868426Z 1620 โ function promptResponseHasMissingXAiStopReason(response: EffectAcpSchema.PromptResponse): boolean {
2026-10-22T19:31:22.9868557Z ยท โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9868777Z ยท โฐโโ 'promptResponseHasMissingXAiStopReason' is declared here
2026-10-22T19:31:22.9868865Z 1621 โ const meta = response._meta;
2026-10-22T19:31:22.9868920Z โฐโโโโ
2026-10-22T19:31:22.9869035Z help: Consider removing this declaration.
2026-10-22T19:31:22.9869038Z
2026-10-22T19:31:22.9869266Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-22T19:31:22.9869520Z โญโ[apps/web/src/lib/composerContextReferences.ts:90:40]
2026-10-22T19:31:22.9869603Z 89 โ let cursor = prompt.length;
2026-10-22T19:31:22.9869721Z 90 โ for (const occurrence of occurrences.reverse()) {
2026-10-22T19:31:22.9869833Z ยท โโโโโโโ
2026-10-22T19:31:22.9869928Z 91 โ let { start, end } = occurrence;
2026-10-22T19:31:22.9869981Z โฐโโโโ
2026-10-22T19:31:22.9870262Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-22T19:31:22.9870265Z
2026-10-22T19:31:22.9870482Z โ eslint(no-unused-vars): Type 'AuthSessionState' is imported but never used.
2026-10-22T19:31:22.9870624Z โญโ[packages/client-runtime/src/state/filesystem.ts:3:8]
2026-10-22T19:31:22.9870924Z 2 โ AuthFilesystemReadScope,
2026-10-22T19:31:22.9871041Z 3 โ type AuthSessionState,
2026-10-22T19:31:22.9871133Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9871301Z ยท โฐโโ 'AuthSessionState' is imported here
2026-10-22T19:31:22.9871380Z 4 โ type FilesystemBrowseEntry,
2026-10-22T19:31:22.9871439Z โฐโโโโ
2026-10-22T19:31:22.9871547Z help: Consider removing this import.
2026-10-22T19:31:22.9871550Z
2026-10-22T19:31:22.9871824Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9871979Z โญโ[apps/mobile/src/components/VideoPreviewModal.ios.tsx:63:55]
2026-10-22T19:31:22.9872044Z 61 โ }, []);
2026-10-22T19:31:22.9872119Z 62 โ useEffect(() => {
2026-10-22T19:31:22.9872205Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9872344Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9872509Z 63 โ if (playbackUrl === null && resolvedUrl !== null) setPlaybackUrl(resolvedUrl);
2026-10-22T19:31:22.9872644Z ยท โโโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9872877Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9872961Z 64 โ }, [playbackUrl, resolvedUrl]);
2026-10-22T19:31:22.9873018Z โฐโโโโ
2026-10-22T19:31:22.9873670Z 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-22T19:31:22.9874018Z 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-22T19:31:22.9874021Z
2026-10-22T19:31:22.9874239Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9874375Z โญโ[apps/mobile/src/components/ComposerEditor.tsx:82:6]
2026-10-22T19:31:22.9874441Z 81 โ },
2026-10-22T19:31:22.9874509Z 82 โ [draftKey],
2026-10-22T19:31:22.9874669Z ยท โโโโโฌโโโ
2026-10-22T19:31:22.9874815Z ยท โฐโโ Unnecessary dependency `draftKey`
2026-10-22T19:31:22.9874876Z 83 โ );
2026-10-22T19:31:22.9874934Z โฐโโโโ
2026-10-22T19:31:22.9875255Z 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-22T19:31:22.9875587Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9875594Z
2026-10-22T19:31:22.9875793Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-22T19:31:22.9875911Z โญโ[packages/shared/src/qrCode.ts:458:44]
2026-10-22T19:31:22.9875985Z 457 โ ): Array<byte> {
2026-10-22T19:31:22.9876105Z 458 โ let result: Array<byte> = divisor.map((_) => 0);
2026-10-22T19:31:22.9876212Z ยท โฌ
2026-10-22T19:31:22.9876432Z ยท โฐโโ '_' is declared here
2026-10-22T19:31:22.9876552Z 459 โ for (const b of data) {
2026-10-22T19:31:22.9876611Z โฐโโโโ
2026-10-22T19:31:22.9876724Z help: Consider removing this parameter.
2026-10-22T19:31:22.9876727Z
2026-10-22T19:31:22.9876887Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9877018Z โญโ[apps/mobile/src/native/StackHeader.tsx:184:9]
2026-10-22T19:31:22.9877092Z 183 โ "options",
2026-10-22T19:31:22.9877191Z 184 โ latestOptionFunctionsRef.current,
2026-10-22T19:31:22.9877312Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9877523Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9877627Z 185 โ optionFunctionWrappersRef.current,
2026-10-22T19:31:22.9877689Z โฐโโโโ
2026-10-22T19:31:22.9878198Z 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-22T19:31:22.9878511Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9878513Z
2026-10-22T19:31:22.9878669Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9878792Z โญโ[apps/mobile/src/native/StackHeader.tsx:185:9]
2026-10-22T19:31:22.9878894Z 184 โ latestOptionFunctionsRef.current,
2026-10-22T19:31:22.9878994Z 185 โ optionFunctionWrappersRef.current,
2026-10-22T19:31:22.9879120Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9879332Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9879431Z 186 โ ) as NativeStackNavigationOptions)
2026-10-22T19:31:22.9879488Z โฐโโโโ
2026-10-22T19:31:22.9879989Z 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-22T19:31:22.9880301Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9880304Z
2026-10-22T19:31:22.9880499Z โ unicorn(no-new-array): Do not use `new Array(singleArgument)`.
2026-10-22T19:31:22.9880635Z โญโ[apps/web/src/terminal/ghostty/core.ts:194:19]
2026-10-22T19:31:22.9880770Z 193 โ const count = Math.min(CHUNK_SIZE, graphemeLength - start);
2026-10-22T19:31:22.9880870Z 194 โ const codes = new Array<number>(count);
2026-10-22T19:31:22.9880984Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9881099Z 195 โ for (let index = 0; index < count; index += 1) {
2026-10-22T19:31:22.9881158Z โฐโโโโ
2026-10-22T19:31:22.9881610Z 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-22T19:31:22.9881612Z
2026-10-22T19:31:22.9881903Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:22.9882062Z โญโ[packages/shared/src/serverSettings.ts:346:9]
2026-10-22T19:31:22.9882177Z 345 โ const entry: ProjectSettingsOverrides = {
2026-10-22T19:31:22.9882323Z 346 โ ...(entries.get(projectId) ?? currentEntries[projectId] ?? {}),
2026-10-22T19:31:22.9882487Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9882550Z 347 โ };
2026-10-22T19:31:22.9882609Z โฐโโโโ
2026-10-22T19:31:22.9882897Z 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-22T19:31:22.9882900Z
2026-10-22T19:31:22.9883138Z โ oxc(no-accumulating-spread): Do not spread accumulators in Array.prototype.reduce()
2026-10-22T19:31:22.9883270Z โญโ[packages/shared/src/serverSettings.ts:448:24]
2026-10-22T19:31:22.9883352Z 447 โ const favorites =
2026-10-22T19:31:22.9883483Z 448 โ setModelFavorites?.reduce((current, change) => {
2026-10-22T19:31:22.9883587Z ยท โโโโฌโโ
2026-10-22T19:31:22.9883724Z ยท โฐโโ For this reduce
2026-10-22T19:31:22.9883817Z 449 โ const exists = current.some(
2026-10-22T19:31:22.9884009Z 450 โ (favorite) => favorite.provider === change.provider && favorite.model === change.model,
2026-10-22T19:31:22.9884073Z 451 โ );
2026-10-22T19:31:22.9884151Z 452 โ return change.favorite
2026-10-22T19:31:22.9884222Z 453 โ ? exists
2026-10-22T19:31:22.9884294Z 454 โ ? current
2026-10-22T19:31:22.9884439Z 455 โ : [...current, { provider: change.provider, model: change.model }]
2026-10-22T19:31:22.9884555Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9884728Z ยท โฐโโ From this spread
2026-10-22T19:31:22.9884805Z 456 โ : current.filter(
2026-10-22T19:31:22.9884867Z โฐโโโโ
2026-10-22T19:31:22.9885089Z help: Consider using `Object.assign()` or `Array.prototype.push()` to mutate the accumulator instead.
2026-10-22T19:31:22.9885262Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-22T19:31:22.9885264Z
2026-10-22T19:31:22.9885470Z โ oxc(no-accumulating-spread): Do not spread accumulators in loops
2026-10-22T19:31:22.9885605Z โญโ[packages/shared/src/serverSettings.ts:466:3]
2026-10-22T19:31:22.9885669Z 464 โ null;
2026-10-22T19:31:22.9885800Z 465 โ let nextModelPreferences = initialModelPreferences;
2026-10-22T19:31:22.9885906Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:22.9886049Z ยท โฐโโ From this accumulator
2026-10-22T19:31:22.9886156Z 466 โ for (const change of setModelsHidden ?? []) {
2026-10-22T19:31:22.9886231Z ยท โโฌโ
2026-10-22T19:31:22.9886346Z ยท โฐโโ For this loop
2026-10-22T19:31:22.9886492Z 467 โ const preferences = nextModelPreferences?.[change.provider] ?? {
2026-10-22T19:31:22.9886566Z 468 โ hiddenModels: [],
2026-10-22T19:31:22.9886641Z 469 โ modelOrder: [],
2026-10-22T19:31:22.9886706Z 470 โ };
2026-10-22T19:31:22.9886899Z 471 โ const hiddenModels = preferences.hiddenModels.filter((model) => model !== change.model);
2026-10-22T19:31:22.9887014Z 472 โ if (change.hidden) hiddenModels.push(change.model);
2026-10-22T19:31:22.9887164Z 473 โ nextModelPreferences = {
2026-10-22T19:31:22.9887295Z 474 โ ...nextModelPreferences,
2026-10-22T19:31:22.9887413Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9887552Z ยท โฐโโ From this spread
2026-10-22T19:31:22.9887679Z 475 โ [change.provider]: { ...preferences, hiddenModels },
2026-10-22T19:31:22.9887738Z โฐโโโโ
2026-10-22T19:31:22.9887907Z help: Consider using `Object.assign()` to mutate the accumulator instead.
2026-10-22T19:31:22.9888071Z note: Using spreads within accumulators leads to `O(n^2)` time complexity.
2026-10-22T19:31:22.9888074Z
2026-10-22T19:31:22.9888299Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-22T19:31:22.9888452Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:229:6]
2026-10-22T19:31:22.9888631Z 225 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-22T19:31:22.9888730Z 226 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9888830Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9889331Z ยท โฐโโ 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-22T19:31:22.9889415Z 227 โ mostRecentEventCount,
2026-10-22T19:31:22.9889480Z 228 โ );
2026-10-22T19:31:22.9889611Z 229 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-22T19:31:22.9889764Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9889988Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9890085Z 230 โ const assumedValue = props.value;
2026-10-22T19:31:22.9890139Z โฐโโโโ
2026-10-22T19:31:22.9890328Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-22T19:31:22.9890667Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9890669Z
2026-10-22T19:31:22.9890900Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-22T19:31:22.9891043Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:237:7]
2026-10-22T19:31:22.9891194Z 236 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-22T19:31:22.9891344Z 237 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9891480Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9891969Z ยท โฐโโ 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-22T19:31:22.9892047Z 238 โ controlledEventCount,
2026-10-22T19:31:22.9892117Z 239 โ assumedValue,
2026-10-22T19:31:22.9892180Z 240 โ );
2026-10-22T19:31:22.9892348Z 241 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-22T19:31:22.9892496Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-22T19:31:22.9892731Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-22T19:31:22.9892835Z 242 โ const acceptNativeEvent = useCallback(
2026-10-22T19:31:22.9892892Z โฐโโโโ
2026-10-22T19:31:22.9893341Z 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-22T19:31:22.9893678Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9893681Z
2026-10-22T19:31:22.9893838Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9893988Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:162:29]
2026-10-22T19:31:22.9894126Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9894247Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9894377Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9894620Z ยท โฐโโ Cannot access ref value during render
2026-10-22T19:31:22.9894701Z 163 โ });
2026-10-22T19:31:22.9894755Z โฐโโโโ
2026-10-22T19:31:22.9895261Z 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-22T19:31:22.9895582Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9895588Z
2026-10-22T19:31:22.9895743Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9895899Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:162:29]
2026-10-22T19:31:22.9896028Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9896152Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9896278Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9896503Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9896563Z 163 โ });
2026-10-22T19:31:22.9896622Z โฐโโโโ
2026-10-22T19:31:22.9897177Z 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-22T19:31:22.9897527Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9897529Z
2026-10-22T19:31:22.9897680Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9897829Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:164:23]
2026-10-22T19:31:22.9897895Z 163 โ });
2026-10-22T19:31:22.9897993Z 164 โ confirmedTokensRef.current = tokens;
2026-10-22T19:31:22.9898126Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-22T19:31:22.9898341Z ยท โ โฐโโ Cannot update ref value during render
2026-10-22T19:31:22.9898471Z ยท โฐโโ This value is a ref
2026-10-22T19:31:22.9898551Z 165 โ return JSON.stringify(
2026-10-22T19:31:22.9898608Z โฐโโโโ
2026-10-22T19:31:22.9899101Z 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-22T19:31:22.9899410Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9899412Z
2026-10-22T19:31:22.9899570Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9899720Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:206:5]
2026-10-22T19:31:22.9899799Z 205 โ mostRecentEventCount,
2026-10-22T19:31:22.9899895Z 206 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9900013Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9900218Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9900279Z 207 โ );
2026-10-22T19:31:22.9900338Z โฐโโโโ
2026-10-22T19:31:22.9900841Z 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-22T19:31:22.9901155Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9901161Z
2026-10-22T19:31:22.9901318Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9901462Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:212:5]
2026-10-22T19:31:22.9901541Z 211 โ mostRecentEventCount,
2026-10-22T19:31:22.9901636Z 212 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9901749Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9901949Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9902011Z 213 โ );
2026-10-22T19:31:22.9902069Z โฐโโโโ
2026-10-22T19:31:22.9902623Z 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-22T19:31:22.9902959Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9902965Z
2026-10-22T19:31:22.9903166Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-22T19:31:22.9903312Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:197:6]
2026-10-22T19:31:22.9903444Z 161 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9903572Z 162 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9903691Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9904196Z ยท โฐโโ 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-22T19:31:22.9904261Z 163 โ });
2026-10-22T19:31:22.9904360Z 164 โ confirmedTokensRef.current = tokens;
2026-10-22T19:31:22.9904434Z 165 โ return JSON.stringify(
2026-10-22T19:31:22.9904742Z 166 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-22T19:31:22.9904822Z 167 โ const record =
2026-10-22T19:31:22.9904915Z 168 โ token.type === "context"
2026-10-22T19:31:22.9905088Z 169 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-22T19:31:22.9905164Z 170 โ : undefined;
2026-10-22T19:31:22.9905293Z 171 โ const presentation = contextChipPresentation(
2026-10-22T19:31:22.9905415Z 172 โ token.type === "context" ? token.kind : token.type,
2026-10-22T19:31:22.9905486Z 173 โ record,
2026-10-22T19:31:22.9905554Z 174 โ );
2026-10-22T19:31:22.9905650Z 175 โ const icon = contextChipIcon(
2026-10-22T19:31:22.9905729Z 176 โ presentation,
2026-10-22T19:31:22.9905879Z 177 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-22T19:31:22.9905951Z 178 โ );
2026-10-22T19:31:22.9906030Z 179 โ return {
2026-10-22T19:31:22.9906111Z 180 โ type: token.type,
2026-10-22T19:31:22.9906190Z 181 โ source: token.source,
2026-10-22T19:31:22.9906271Z 182 โ start: token.start,
2026-10-22T19:31:22.9906351Z 183 โ end: token.end,
2026-10-22T19:31:22.9906443Z 184 โ accent: presentation.accent,
2026-10-22T19:31:22.9906518Z 185 โ label:
2026-10-22T19:31:22.9906605Z 186 โ token.type === "skill"
2026-10-22T19:31:22.9906721Z 187 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-22T19:31:22.9906810Z 188 โ : token.type === "context"
2026-10-22T19:31:22.9907066Z 189 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-22T19:31:22.9907160Z 190 โ : basename(token.value),
2026-10-22T19:31:22.9907315Z 191 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-22T19:31:22.9907418Z 192 โ iconUri: contextChipIconUri(icon),
2026-10-22T19:31:22.9907511Z 193 โ tintsIcon: icon.kind === "chip",
2026-10-22T19:31:22.9907576Z 194 โ };
2026-10-22T19:31:22.9907642Z 195 โ }),
2026-10-22T19:31:22.9907758Z 196 โ );
2026-10-22T19:31:22.9907907Z 197 โ }, [props.value, props.context, skillLabels]);
2026-10-22T19:31:22.9908039Z ยท โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9908261Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9908414Z 198 โ // Every render resolves against the snapshot history, so a render whose
2026-10-22T19:31:22.9908470Z โฐโโโโ
2026-10-22T19:31:22.9908694Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-22T19:31:22.9909029Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9909032Z
2026-10-22T19:31:22.9909240Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-22T19:31:22.9909388Z โญโ[apps/mobile/src/native/T3ComposerEditor.ios.tsx:259:5]
2026-10-22T19:31:22.9909595Z 251 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-22T19:31:22.9909706Z 252 โ nativeEventSnapshotsRef.current.push({
2026-10-22T19:31:22.9909807Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9910298Z ยท โฐโโ 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-22T19:31:22.9910401Z 253 โ eventCount: acknowledgedEventCount,
2026-10-22T19:31:22.9910471Z 254 โ value,
2026-10-22T19:31:22.9910565Z 255 โ selection: nextSelection,
2026-10-22T19:31:22.9910633Z 256 โ });
2026-10-22T19:31:22.9910735Z 257 โ return acknowledgedEventCount;
2026-10-22T19:31:22.9910797Z 258 โ },
2026-10-22T19:31:22.9910863Z 259 โ [],
2026-10-22T19:31:22.9910936Z ยท โโฌ
2026-10-22T19:31:22.9911136Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9911202Z 260 โ );
2026-10-22T19:31:22.9911262Z โฐโโโโ
2026-10-22T19:31:22.9911480Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-22T19:31:22.9911827Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9911830Z
2026-10-22T19:31:22.9912144Z โ eslint(no-unused-vars): Identifier 'Image' is imported but never used.
2026-10-22T19:31:22.9912343Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:17:10]
2026-10-22T19:31:22.9912498Z 16 โ import type { NativeSyntheticEvent, ViewProps } from "react-native";
2026-10-22T19:31:22.9912622Z 17 โ import { Image, Platform, StyleSheet } from "react-native";
2026-10-22T19:31:22.9912703Z ยท โโโฌโโ
2026-10-22T19:31:22.9912846Z ยท โฐโโ 'Image' is imported here
2026-10-22T19:31:22.9912908Z 18 โ
2026-10-22T19:31:22.9912962Z โฐโโโโ
2026-10-22T19:31:22.9913071Z help: Consider removing this import.
2026-10-22T19:31:22.9913074Z
2026-10-22T19:31:22.9913291Z โ react(exhaustive-effect-dependencies): Found missing effect dependencies
2026-10-22T19:31:22.9913452Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:227:6]
2026-10-22T19:31:22.9913627Z 223 โ nativeEventSnapshotsRef.current = pruneAcknowledgedComposerNativeEvents(
2026-10-22T19:31:22.9913728Z 224 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9913827Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9914317Z ยท โฐโโ 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-22T19:31:22.9914399Z 225 โ mostRecentEventCount,
2026-10-22T19:31:22.9914461Z 226 โ );
2026-10-22T19:31:22.9914648Z 227 โ }, [acknowledgesLatestNativeEvent, mostRecentEventCount]);
2026-10-22T19:31:22.9914796Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9915015Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9915113Z 228 โ const assumedValue = props.value;
2026-10-22T19:31:22.9915170Z โฐโโโโ
2026-10-22T19:31:22.9915354Z help: Missing dependencies can cause an effect to fire less often than it should
2026-10-22T19:31:22.9915684Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9915691Z
2026-10-22T19:31:22.9915919Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-22T19:31:22.9916070Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:235:7]
2026-10-22T19:31:22.9916232Z 234 โ nativeEventSnapshotsRef.current = assumeComposerControlledState(
2026-10-22T19:31:22.9916333Z 235 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9916430Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9916918Z ยท โฐโโ 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-22T19:31:22.9916998Z 236 โ controlledEventCount,
2026-10-22T19:31:22.9917072Z 237 โ assumedValue,
2026-10-22T19:31:22.9917130Z 238 โ );
2026-10-22T19:31:22.9917307Z 239 โ }, [assumedValue, controlledEventCount, isNativeEcho, controlledDocumentJson]);
2026-10-22T19:31:22.9917457Z ยท โโโโโโโโโโโโฌโโโโโโโโโโ
2026-10-22T19:31:22.9917754Z ยท โฐโโ Unnecessary dependency `controlledDocumentJson`
2026-10-22T19:31:22.9917890Z 240 โ const acceptNativeEvent = useCallback(
2026-10-22T19:31:22.9917954Z โฐโโโโ
2026-10-22T19:31:22.9918406Z 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-22T19:31:22.9918741Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9918743Z
2026-10-22T19:31:22.9918901Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9919091Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:160:29]
2026-10-22T19:31:22.9919226Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9919348Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9919476Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9919653Z ยท โฐโโ Cannot access ref value during render
2026-10-22T19:31:22.9919716Z 161 โ });
2026-10-22T19:31:22.9919775Z โฐโโโโ
2026-10-22T19:31:22.9920274Z 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-22T19:31:22.9920587Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9920597Z
2026-10-22T19:31:22.9920750Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9920910Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:160:29]
2026-10-22T19:31:22.9921043Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9921168Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9921290Z ยท โโโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9921517Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9921580Z 161 โ });
2026-10-22T19:31:22.9921639Z โฐโโโโ
2026-10-22T19:31:22.9922401Z 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-22T19:31:22.9922722Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9922724Z
2026-10-22T19:31:22.9922935Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9923091Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:162:23]
2026-10-22T19:31:22.9923153Z 161 โ });
2026-10-22T19:31:22.9923249Z 162 โ confirmedTokensRef.current = tokens;
2026-10-22T19:31:22.9923391Z ยท โโโโโโโโโโฌโโโโโโโโโโโโโฌโโโ
2026-10-22T19:31:22.9923714Z ยท โ โฐโโ Cannot update ref value during render
2026-10-22T19:31:22.9923888Z ยท โฐโโ This value is a ref
2026-10-22T19:31:22.9923965Z 163 โ return JSON.stringify(
2026-10-22T19:31:22.9924026Z โฐโโโโ
2026-10-22T19:31:22.9924552Z 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-22T19:31:22.9924919Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9924922Z
2026-10-22T19:31:22.9925080Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9925238Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:204:5]
2026-10-22T19:31:22.9925320Z 203 โ mostRecentEventCount,
2026-10-22T19:31:22.9925417Z 204 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9925529Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9925734Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9925808Z 205 โ );
2026-10-22T19:31:22.9925870Z โฐโโโโ
2026-10-22T19:31:22.9926368Z 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-22T19:31:22.9926678Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9926684Z
2026-10-22T19:31:22.9926840Z โ react(refs): Cannot access refs during render
2026-10-22T19:31:22.9926999Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:210:5]
2026-10-22T19:31:22.9927077Z 209 โ mostRecentEventCount,
2026-10-22T19:31:22.9927171Z 210 โ nativeEventSnapshotsRef.current,
2026-10-22T19:31:22.9927291Z ยท โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9927495Z ยท โฐโโ Passing a ref to a function may read its value during render
2026-10-22T19:31:22.9927561Z 211 โ );
2026-10-22T19:31:22.9927616Z โฐโโโโ
2026-10-22T19:31:22.9928122Z 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-22T19:31:22.9928440Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
2026-10-22T19:31:22.9928442Z
2026-10-22T19:31:22.9928648Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-22T19:31:22.9928800Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:195:6]
2026-10-22T19:31:22.9928928Z 159 โ const tokens = collectComposerInlineTokens(props.value, {
2026-10-22T19:31:22.9929054Z 160 โ preserveTrailingFrom: confirmedTokensRef.current,
2026-10-22T19:31:22.9929175Z ยท โโโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9929740Z ยท โฐโโ 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-22T19:31:22.9929838Z 161 โ });
2026-10-22T19:31:22.9929943Z 162 โ confirmedTokensRef.current = tokens;
2026-10-22T19:31:22.9930027Z 163 โ return JSON.stringify(
2026-10-22T19:31:22.9930205Z 164 โ composerContextEditorTokens(props.value, tokens, skillLabels).map((token) => {
2026-10-22T19:31:22.9930277Z 165 โ const record =
2026-10-22T19:31:22.9930367Z 166 โ token.type === "context"
2026-10-22T19:31:22.9930546Z 167 โ ? props.context?.records.find((record) => record.contextId === token.contextId)
2026-10-22T19:31:22.9930620Z 168 โ : undefined;
2026-10-22T19:31:22.9930741Z 169 โ const presentation = contextChipPresentation(
2026-10-22T19:31:22.9930862Z 170 โ token.type === "context" ? token.kind : token.type,
2026-10-22T19:31:22.9930933Z 171 โ record,
2026-10-22T19:31:22.9930999Z 172 โ );
2026-10-22T19:31:22.9931089Z 173 โ const icon = contextChipIcon(
2026-10-22T19:31:22.9931165Z 174 โ presentation,
2026-10-22T19:31:22.9931317Z 175 โ token.type === "mention" ? token.value : contextRecordFileName(record),
2026-10-22T19:31:22.9931383Z 176 โ );
2026-10-22T19:31:22.9931448Z 177 โ return {
2026-10-22T19:31:22.9931530Z 178 โ type: token.type,
2026-10-22T19:31:22.9931613Z 179 โ source: token.source,
2026-10-22T19:31:22.9931695Z 180 โ start: token.start,
2026-10-22T19:31:22.9931768Z 181 โ end: token.end,
2026-10-22T19:31:22.9931867Z 182 โ accent: presentation.accent,
2026-10-22T19:31:22.9931942Z 183 โ label:
2026-10-22T19:31:22.9932032Z 184 โ token.type === "skill"
2026-10-22T19:31:22.9932148Z 185 โ ? (skillLabels.get(token.value) ?? token.value)
2026-10-22T19:31:22.9932244Z 186 โ : token.type === "context"
2026-10-22T19:31:22.9932497Z 187 โ ? `${token.label}${props.context?.records.some((record) => record.contextId === token.contextId) ? "" : " ยท unavailable"}`
2026-10-22T19:31:22.9932591Z 188 โ : basename(token.value),
2026-10-22T19:31:22.9932741Z 189 โ detail: token.type === "context" ? composerChipSizeSuffix(record) : "",
2026-10-22T19:31:22.9932846Z 190 โ iconUri: contextChipIconUri(icon),
2026-10-22T19:31:22.9932941Z 191 โ tintsIcon: icon.kind === "chip",
2026-10-22T19:31:22.9933005Z 192 โ };
2026-10-22T19:31:22.9933127Z 193 โ }),
2026-10-22T19:31:22.9933232Z 194 โ );
2026-10-22T19:31:22.9933343Z 195 โ }, [props.value, props.context, skillLabels]);
2026-10-22T19:31:22.9933476Z ยท โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9933688Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9933840Z 196 โ // Every render resolves against the snapshot history, so a render whose
2026-10-22T19:31:22.9933904Z โฐโโโโ
2026-10-22T19:31:22.9934130Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-22T19:31:22.9934463Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9934466Z
2026-10-22T19:31:22.9934734Z โ react(memo-dependencies): Found missing memoization dependencies
2026-10-22T19:31:22.9934892Z โญโ[apps/mobile/src/native/T3ComposerEditor.native.tsx:257:5]
2026-10-22T19:31:22.9935034Z 249 โ mostRecentEventCountRef.current = acknowledgedEventCount;
2026-10-22T19:31:22.9935144Z 250 โ nativeEventSnapshotsRef.current.push({
2026-10-22T19:31:22.9935248Z ยท โโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:22.9935747Z ยท โฐโโ 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-22T19:31:22.9935853Z 251 โ eventCount: acknowledgedEventCount,
2026-10-22T19:31:22.9935925Z 252 โ value,
2026-10-22T19:31:22.9936016Z 253 โ selection: nextSelection,
2026-10-22T19:31:22.9936085Z 254 โ });
2026-10-22T19:31:22.9936180Z 255 โ return acknowledgedEventCount;
2026-10-22T19:31:22.9936238Z 256 โ },
2026-10-22T19:31:22.9936306Z 257 โ [],
2026-10-22T19:31:22.9936381Z ยท โโฌ
2026-10-22T19:31:22.9936580Z ยท โฐโโ This dependency list is missing values used by the callback
2026-10-22T19:31:22.9936637Z 258 โ );
2026-10-22T19:31:22.9936696Z โฐโโโโ
2026-10-22T19:31:22.9936920Z help: Missing dependencies can cause a value to update less often than it should, resulting in stale UI
2026-10-22T19:31:22.9937255Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9937258Z
2026-10-22T19:31:22.9937438Z โ react(immutability): This value cannot be modified
2026-10-22T19:31:22.9937609Z โญโ[apps/mobile/src/features/connection/ConnectionStatusDot.tsx:58:7]
2026-10-22T19:31:22.9937719Z 53 โ function usePulseAnimation(pulse: boolean) {
2026-10-22T19:31:22.9937825Z 54 โ const pulseProgress = useSharedValue(0);
2026-10-22T19:31:22.9937919Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9938070Z ยท โฐโโ `pulseProgress` originates here
2026-10-22T19:31:22.9938133Z 55 โ
2026-10-22T19:31:22.9938206Z 56 โ useEffect(() => {
2026-10-22T19:31:22.9938277Z 57 โ if (pulse) {
2026-10-22T19:31:22.9938376Z 58 โ pulseProgress.value = withRepeat(
2026-10-22T19:31:22.9938468Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9938699Z ยท โฐโโ `pulseProgress` cannot be modified
2026-10-22T19:31:22.9938819Z 59 โ withTiming(1, {
2026-10-22T19:31:22.9938893Z โฐโโโโ
2026-10-22T19:31:22.9939184Z 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-22T19:31:22.9939512Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-22T19:31:22.9939515Z
2026-10-22T19:31:22.9939795Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9939978Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:79:5]
2026-10-22T19:31:22.9940041Z 76 โ
2026-10-22T19:31:22.9940115Z 77 โ useEffect(() => {
2026-10-22T19:31:22.9940208Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9940351Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9940502Z 78 โ const { host, code } = parsePairingUrl(connectionPairingUrl);
2026-10-22T19:31:22.9940578Z 79 โ setHostInput(host);
2026-10-22T19:31:22.9940672Z ยท โโโโโโโฌโโโโโ
2026-10-22T19:31:22.9940853Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9940933Z 80 โ setCodeInput(code);
2026-10-22T19:31:22.9944905Z โฐโโโโ
2026-10-22T19:31:22.9945604Z 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-22T19:31:22.9945963Z 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-22T19:31:22.9945969Z
2026-10-22T19:31:22.9946255Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9946446Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:89:5]
2026-10-22T19:31:22.9946508Z 82 โ
2026-10-22T19:31:22.9946580Z 83 โ useEffect(() => {
2026-10-22T19:31:22.9946657Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9946799Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9946898Z 84 โ if (routePairingUrl.length === 0) {
2026-10-22T19:31:22.9946971Z 85 โ return;
2026-10-22T19:31:22.9947032Z 86 โ }
2026-10-22T19:31:22.9947092Z 87 โ
2026-10-22T19:31:22.9947222Z 88 โ const { host, code } = parsePairingUrl(routePairingUrl);
2026-10-22T19:31:22.9947296Z 89 โ setHostInput(host);
2026-10-22T19:31:22.9947384Z ยท โโโโโโโฌโโโโโ
2026-10-22T19:31:22.9947573Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9947647Z 90 โ setCodeInput(code);
2026-10-22T19:31:22.9947702Z โฐโโโโ
2026-10-22T19:31:22.9948348Z 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-22T19:31:22.9948794Z 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-22T19:31:22.9948836Z
2026-10-22T19:31:22.9949116Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9949299Z โญโ[apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx:95:7]
2026-10-22T19:31:22.9949353Z 92 โ
2026-10-22T19:31:22.9949519Z 93 โ useEffect(() => {
2026-10-22T19:31:22.9949604Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9949746Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9949835Z 94 โ if (pairingConnectionError) {
2026-10-22T19:31:22.9949924Z 95 โ setIsSubmitting(false);
2026-10-22T19:31:22.9950024Z ยท โโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9950213Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9950272Z 96 โ }
2026-10-22T19:31:22.9950337Z โฐโโโโ
2026-10-22T19:31:22.9950981Z 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-22T19:31:22.9951328Z 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-22T19:31:22.9951331Z
2026-10-22T19:31:22.9951595Z โ eslint(no-unneeded-ternary): Unnecessary use of boolean literals in conditional expression
2026-10-22T19:31:22.9951733Z โญโ[packages/shared/src/serverSettings.test.ts:35:7]
2026-10-22T19:31:22.9951931Z 34 โ const fallback = fallbackTextGenerationModelSelection(providerInstances, (instanceId) =>
2026-10-22T19:31:22.9952041Z 35 โ instanceId === configured ? true : false,
2026-10-22T19:31:22.9952170Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9952229Z 36 โ );
2026-10-22T19:31:22.9952289Z โฐโโโโ
2026-10-22T19:31:22.9952402Z help: Remove this ternary operator
2026-10-22T19:31:22.9952404Z
2026-10-22T19:31:22.9952639Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-22T19:31:22.9952753Z โญโ[apps/mobile/src/Stack.tsx:1044:21]
2026-10-22T19:31:22.9952838Z 1043 โ <Navigator
2026-10-22T19:31:22.9952987Z 1044 โ screenLayout={(props) => <GuardedScreenLayout {...props} />}
2026-10-22T19:31:22.9953138Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9953212Z 1045 โ screenListeners={{
2026-10-22T19:31:22.9953272Z โฐโโโโ
2026-10-22T19:31:22.9953665Z 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-22T19:31:22.9953668Z
2026-10-22T19:31:22.9953909Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:22.9954060Z โญโ[apps/mobile/src/state/use-composer-drafts.ts:1022:15]
2026-10-22T19:31:22.9954130Z 1021 โ instanceId,
2026-10-22T19:31:22.9954426Z 1022 โ { ...(persisted.modelOptionMemory[instanceId] ?? {}), ...models },
2026-10-22T19:31:22.9954976Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9955052Z 1023 โ ]),
2026-10-22T19:31:22.9955107Z โฐโโโโ
2026-10-22T19:31:22.9955398Z 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-22T19:31:22.9955400Z
2026-10-22T19:31:22.9955807Z โ 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-22T19:31:22.9955942Z โญโ[packages/shared/src/otelEnvironment.ts:143:14]
2026-10-22T19:31:22.9956003Z 142 โ name,
2026-10-22T19:31:22.9956164Z 143 โ (raw) => Schema.decodeUnknownOption(OtlpProtocol)(raw.toLowerCase()),
2026-10-22T19:31:22.9956288Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9956422Z 144 โ `${name} is not http/protobuf or http/json, ${NOT_EXPORTED}`,
2026-10-22T19:31:22.9956477Z โฐโโโโ
2026-10-22T19:31:22.9956480Z
2026-10-22T19:31:22.9956763Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9956929Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:400:5]
2026-10-22T19:31:22.9956989Z 398 โ
2026-10-22T19:31:22.9957063Z 399 โ useEffect(() => {
2026-10-22T19:31:22.9957144Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9957287Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9957394Z 400 โ setInspectorSelection((current) => {
2026-10-22T19:31:22.9957496Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-22T19:31:22.9957693Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9957811Z 401 โ if (props.renderInspector === undefined) {
2026-10-22T19:31:22.9957883Z โฐโโโโ
2026-10-22T19:31:22.9958519Z 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-22T19:31:22.9958867Z 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-22T19:31:22.9958870Z
2026-10-22T19:31:22.9959168Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-22T19:31:22.9959389Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:528:24]
2026-10-22T19:31:22.9959563Z 527 โ const inspectorHeaderInset = Platform.OS === "ios" ? 0 : safeAreaInsets.top;
2026-10-22T19:31:22.9959751Z 528 โ โญโโถ const GitInspector = () => (
2026-10-22T19:31:22.9959857Z 529 โ โ <GitOverviewSheet
2026-10-22T19:31:22.9959999Z 530 โ โ headerInset={inspectorHeaderInset}
2026-10-22T19:31:22.9960156Z 531 โ โ presentation="inspector"
2026-10-22T19:31:22.9960506Z 532 โ โ route={{ params: { environmentId: environmentId!, threadId: threadId! } }}
2026-10-22T19:31:22.9960657Z 533 โ โ />
2026-10-22T19:31:22.9960909Z 534 โ โฐโโถ );
2026-10-22T19:31:22.9961076Z 535 โ const FilesInspector = () =>
2026-10-22T19:31:22.9961187Z โฐโโโโ
2026-10-22T19:31:22.9961595Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-22T19:31:22.9961599Z
2026-10-22T19:31:22.9961989Z โ react(no-unstable-nested-components): Do not define components during render.
2026-10-22T19:31:22.9962266Z โญโ[apps/mobile/src/features/threads/ThreadRouteScreen.tsx:535:26]
2026-10-22T19:31:22.9962376Z 534 โ );
2026-10-22T19:31:22.9962677Z 535 โ โญโโถ const FilesInspector = () =>
2026-10-22T19:31:22.9962976Z 536 โ โ selectedThread !== null && selectedThreadCwd !== null ? (
2026-10-22T19:31:22.9963187Z 537 โ โ <ThreadFileNavigatorPane
2026-10-22T19:31:22.9963380Z 538 โ โ cwd={selectedThreadCwd}
2026-10-22T19:31:22.9963616Z 539 โ โ environmentId={selectedThread.environmentId}
2026-10-22T19:31:22.9963763Z 540 โ โ headerInset={inspectorHeaderInset}
2026-10-22T19:31:22.9963940Z 541 โ โ projectName={selectedThreadProject?.title ?? "Files"}
2026-10-22T19:31:22.9964116Z 542 โ โ selectedPath={null}
2026-10-22T19:31:22.9964324Z 543 โ โ onSelectFile={handleSelectInspectorFile}
2026-10-22T19:31:22.9964453Z 544 โ โ />
2026-10-22T19:31:22.9964736Z 545 โ โฐโโถ ) : null;
2026-10-22T19:31:22.9964988Z 546 โ const RouteInspector = () => props.renderInspector?.(inspectorHeaderInset);
2026-10-22T19:31:22.9965068Z โฐโโโโ
2026-10-22T19:31:22.9965434Z help: Move this component definition out of the parent component `ThreadRouteContent` and pass data as props.
2026-10-22T19:31:22.9965438Z
2026-10-22T19:31:22.9965767Z โ react(capitalized-calls): Capitalized function called without JSX
2026-10-22T19:31:22.9965954Z โญโ[apps/mobile/src/features/threads/ThreadQueueControl.tsx:602:27]
2026-10-22T19:31:22.9966157Z 601 โ const onEnd = useEffectEvent((y: number, success: boolean) => props.onEnd(y, success));
2026-10-22T19:31:22.9966248Z 602 โ const gesture = Gesture.Pan()
2026-10-22T19:31:22.9966375Z ยท โโฌโ
2026-10-22T19:31:22.9966687Z ยท โฐโโ `Pan` may be a component
2026-10-22T19:31:22.9966956Z 603 โ .enabled(!props.disabled)
2026-10-22T19:31:22.9967057Z โฐโโโโ
2026-10-22T19:31:22.9967602Z 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-22T19:31:22.9968460Z 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-22T19:31:22.9968469Z
2026-10-22T19:31:22.9968877Z โ react(exhaustive-effect-dependencies): Found missing/extra effect dependencies
2026-10-22T19:31:22.9969141Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:771:7]
2026-10-22T19:31:22.9969342Z 770 โ if (settingsSheetPresentation.isActive) {
2026-10-22T19:31:22.9969602Z 771 โ settingsRoutePresentation.present(settingsRouteSession);
2026-10-22T19:31:22.9969782Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโโ
2026-10-22T19:31:22.9970103Z ยท โฐโโ Missing dependency `settingsRoutePresentation`
2026-10-22T19:31:22.9970201Z 772 โ }
2026-10-22T19:31:22.9970580Z 773 โ }, [settingsRoutePresentation.present, settingsRouteSession, settingsSheetPresentation.isActive]);
2026-10-22T19:31:22.9970778Z ยท โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9971291Z ยท โฐโโ Overly precise dependency `settingsRoutePresentation.present`, use `settingsRoutePresentation` instead
2026-10-22T19:31:22.9971395Z 774 โ
2026-10-22T19:31:22.9971497Z โฐโโโโ
2026-10-22T19:31:22.9972069Z 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-22T19:31:22.9972441Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9972444Z
2026-10-22T19:31:22.9972634Z โ react(immutability): This value cannot be modified
2026-10-22T19:31:22.9972828Z โญโ[apps/mobile/src/features/threads/ThreadComposer.tsx:389:5]
2026-10-22T19:31:22.9973033Z 385 โ typeof props.style.borderRadius === "number" ? props.style.borderRadius : 0;
2026-10-22T19:31:22.9973212Z 386 โ const animatedBorderRadius = useSharedValue(targetBorderRadius);
2026-10-22T19:31:22.9973336Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:22.9973527Z ยท โฐโโ `animatedBorderRadius` originates here
2026-10-22T19:31:22.9973720Z 387 โ const shouldAnimate = props.animateLayout !== false && Platform.OS !== "android";
2026-10-22T19:31:22.9973820Z 388 โ useLayoutEffect(() => {
2026-10-22T19:31:22.9973945Z 389 โ animatedBorderRadius.value = shouldAnimate
2026-10-22T19:31:22.9974047Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:22.9974240Z ยท โฐโโ `animatedBorderRadius` cannot be modified
2026-10-22T19:31:22.9974357Z 390 โ ? withTiming(targetBorderRadius, {
2026-10-22T19:31:22.9974436Z โฐโโโโ
2026-10-22T19:31:22.9974797Z 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-22T19:31:22.9975566Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-22T19:31:22.9975693Z
2026-10-22T19:31:22.9976435Z โ 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-22T19:31:22.9976769Z โญโ[apps/server/src/provider/acp/AntigravityProtocol.ts:263:20]
2026-10-22T19:31:22.9977002Z 262 โ ...(update._meta !== undefined
2026-10-22T19:31:22.9977233Z 263 โ ? { _meta: Schema.is(Schema.Record(Schema.String, Schema.Json))(meta) ? meta : null }
2026-10-22T19:31:22.9977393Z ยท โโโโโโโโโ
2026-10-22T19:31:22.9977524Z 264 โ : {}),
2026-10-22T19:31:22.9977608Z โฐโโโโ
2026-10-22T19:31:22.9977644Z
2026-10-22T19:31:22.9978035Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:22.9978278Z โญโ[apps/mobile/src/features/files/FileTreeBrowser.tsx:155:5]
2026-10-22T19:31:22.9978385Z 150 โ
2026-10-22T19:31:22.9978514Z 151 โ useEffect(() => {
2026-10-22T19:31:22.9978622Z ยท โโโโโฌโโโโ
2026-10-22T19:31:22.9978873Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:22.9979037Z 152 โ if (!controlledSelectedPath) {
2026-10-22T19:31:22.9979227Z 153 โ return;
2026-10-22T19:31:22.9979367Z 154 โ }
2026-10-22T19:31:22.9979531Z 155 โ setExpandedPaths((current) => {
2026-10-22T19:31:22.9979687Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:22.9979891Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:22.9980088Z 156 โ const ancestors = ancestorPaths(controlledSelectedPath);
2026-10-22T19:31:22.9980193Z โฐโโโโ
2026-10-22T19:31:22.9980975Z 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-22T19:31:22.9981446Z 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-22T19:31:22.9981452Z
2026-10-22T19:31:22.9981687Z โ typescript(no-extraneous-class): Unexpected class with only a constructor.
2026-10-22T19:31:22.9981920Z โญโ[apps/desktop/src/preview/Manager.test.ts:158:18]
2026-10-22T19:31:22.9982103Z 157 โ BrowserWindow: browserWindowConstructor,
2026-10-22T19:31:22.9982360Z 158 โ โญโโถ ClipboardItem: class {
2026-10-22T19:31:22.9982508Z 159 โ โ constructor(data: Record<string, unknown>) {
2026-10-22T19:31:22.9982637Z 160 โ โ clipboardItemConstructor(data);
2026-10-22T19:31:22.9982723Z 161 โ โ }
2026-10-22T19:31:22.9982948Z 162 โ โฐโโถ },
2026-10-22T19:31:22.9983065Z 163 โ clipboard: {
2026-10-22T19:31:22.9983136Z โฐโโโโ
2026-10-22T19:31:22.9983573Z help: Try replacing this class with a standalone function or deleting it entirely
2026-10-22T19:31:22.9983678Z
2026-10-22T19:31:22.9984016Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-22T19:31:22.9984279Z โญโ[apps/server/src/provider/Drivers/CodexDriver.test.ts:418:14]
2026-10-22T19:31:22.9984375Z 417 โ
2026-10-22T19:31:22.9984620Z 418 โ for (const {} of ["direct", "wrapper"] as const) {
2026-10-22T19:31:22.9984768Z ยท โโ
2026-10-22T19:31:22.9984875Z 419 โ }
2026-10-22T19:31:22.9984985Z โฐโโโโ
2026-10-22T19:31:22.9985442Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-22T19:31:22.9985445Z
2026-10-22T19:31:22.9985710Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9985887Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:257:7]
2026-10-22T19:31:22.9986000Z 256 โ return () => cancelAnimationFrame(frame);
2026-10-22T19:31:22.9986093Z 257 โ }, [props.path, targetIndex]);
2026-10-22T19:31:22.9986178Z ยท โโโโโโฌโโโโ
2026-10-22T19:31:22.9986342Z ยท โฐโโ Unnecessary dependency `props.path`
2026-10-22T19:31:22.9986399Z 258 โ
2026-10-22T19:31:22.9986458Z โฐโโโโ
2026-10-22T19:31:22.9986784Z 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-22T19:31:22.9987130Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9987134Z
2026-10-22T19:31:22.9987349Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-22T19:31:22.9987518Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:293:23]
2026-10-22T19:31:22.9987606Z 292 โ <SourceText
2026-10-22T19:31:22.9987717Z 293 โ key={`${index}:${tokenIndex}`}
2026-10-22T19:31:22.9987843Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9987927Z 294 โ style={{
2026-10-22T19:31:22.9987987Z โฐโโโโ
2026-10-22T19:31:22.9988154Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-22T19:31:22.9988157Z
2026-10-22T19:31:22.9988396Z โ react(no-array-index-key): Usage of Array index in keys is not allowed
2026-10-22T19:31:22.9988575Z โญโ[apps/mobile/src/features/files/SourceFileSurface.tsx:309:27]
2026-10-22T19:31:22.9988650Z 308 โ return (
2026-10-22T19:31:22.9988753Z 309 โ <SourceText key={index}>
2026-10-22T19:31:22.9988866Z ยท โโโโโโโโโโโ
2026-10-22T19:31:22.9988943Z 310 โ {body}
2026-10-22T19:31:22.9989010Z โฐโโโโ
2026-10-22T19:31:22.9989177Z help: Use a unique data-dependent key to avoid unnecessary rerenders
2026-10-22T19:31:22.9989180Z
2026-10-22T19:31:22.9989939Z โ react(exhaustive-effect-dependencies): Found extra effect dependencies
2026-10-22T19:31:22.9990113Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:215:7]
2026-10-22T19:31:22.9990179Z 214 โ }
2026-10-22T19:31:22.9990275Z 215 โ }, [wrappedRender]);
2026-10-22T19:31:22.9990611Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:22.9990973Z ยท โฐโโ Unnecessary dependency `wrappedRender`
2026-10-22T19:31:22.9991037Z 216 โ
2026-10-22T19:31:22.9991101Z โฐโโโโ
2026-10-22T19:31:22.9991419Z 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-22T19:31:22.9991900Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-deps
2026-10-22T19:31:22.9991904Z
2026-10-22T19:31:22.9992173Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-22T19:31:22.9992356Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:817:35]
2026-10-22T19:31:22.9992429Z 816 โ >
2026-10-22T19:31:22.9992554Z 817 โ <AdaptiveWorkspaceContext value={contextValue}>
2026-10-22T19:31:22.9992687Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9992796Z 818 โ <NativeWorkspaceInspectorContext
2026-10-22T19:31:22.9992853Z โฐโโโโ
2026-10-22T19:31:22.9993094Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-22T19:31:22.9993254Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-22T19:31:22.9993256Z
2026-10-22T19:31:22.9993518Z โ react(jsx-no-constructed-context-values): The Context `value` prop should not be constructed.
2026-10-22T19:31:22.9993694Z โญโ[apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx:832:42]
2026-10-22T19:31:22.9993761Z 831 โ >
2026-10-22T19:31:22.9993899Z 832 โ <AdaptiveWorkspaceContext.Provider value={contextValue}>
2026-10-22T19:31:22.9994035Z ยท โโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:22.9994149Z 833 โ <WindowHingeContext value={windowHinge}>
2026-10-22T19:31:22.9994210Z โฐโโโโ
2026-10-22T19:31:22.9994447Z help: Wrap the `value` prop in useMemo() or useCallback(), or use a constant value to prevent unnecessary re-renders.
2026-10-22T19:31:22.9994662Z Alternatively, move the value outside the render function if it doesn't depend on props or state.
2026-10-22T19:31:22.9994666Z
2026-10-22T19:31:22.9994862Z โ react(immutability): This value cannot be modified
2026-10-22T19:31:22.9995047Z โญโ[apps/mobile/src/features/layout/workspace-inspector-pane.tsx:42:5]
2026-10-22T19:31:22.9995205Z 35 โ
2026-10-22T19:31:22.9995445Z 36 โ const inspectorProgress = useSharedValue(inspectorVisible ? 1 : 0);
2026-10-22T19:31:22.9995545Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9995713Z ยท โฐโโ `inspectorProgress` originates here
2026-10-22T19:31:22.9995816Z 37 โ const { renderedInspectorWidth } = props;
2026-10-22T19:31:22.9995967Z 38 โ const renderedContentWidth = useSharedValue(inspectorWidth ?? 0);
2026-10-22T19:31:22.9996034Z 39 โ
2026-10-22T19:31:22.9996151Z 40 โ const onClosed = props.onClosed;
2026-10-22T19:31:22.9996246Z 41 โ useEffect(() => {
2026-10-22T19:31:22.9996349Z 42 โ inspectorProgress.value = withTiming(
2026-10-22T19:31:22.9996445Z ยท โโโโโโโโโฌโโโโโโโโ
2026-10-22T19:31:22.9996610Z ยท โฐโโ `inspectorProgress` cannot be modified
2026-10-22T19:31:22.9996700Z 43 โ inspectorVisible ? 1 : 0,
2026-10-22T19:31:22.9996767Z โฐโโโโ
2026-10-22T19:31:22.9997153Z 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-22T19:31:22.9997492Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-22T19:31:22.9997495Z
2026-10-22T19:31:22.9997660Z โ react(immutability): This value cannot be modified
2026-10-22T19:31:22.9997834Z โญโ[apps/mobile/src/features/layout/workspace-inspector-pane.tsx:67:7]
2026-10-22T19:31:22.9997939Z 37 โ const { renderedInspectorWidth } = props;
2026-10-22T19:31:22.9998084Z 38 โ const renderedContentWidth = useSharedValue(inspectorWidth ?? 0);
2026-10-22T19:31:22.9998188Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:22.9998368Z ยท โฐโโ `renderedContentWidth` originates here
2026-10-22T19:31:22.9998425Z 39 โ
2026-10-22T19:31:22.9998514Z 40 โ const onClosed = props.onClosed;
2026-10-22T19:31:22.9998582Z 41 โ useEffect(() => {
2026-10-22T19:31:22.9998690Z 42 โ inspectorProgress.value = withTiming(
2026-10-22T19:31:22.9998776Z 43 โ inspectorVisible ? 1 : 0,
2026-10-22T19:31:22.9998860Z 44 โ WORKSPACE_PANE_TIMING,
2026-10-22T19:31:22.9998930Z 45 โ (finished) => {
2026-10-22T19:31:22.9999085Z 46 โ if (finished === true && !inspectorVisible && onClosed !== undefined) {
2026-10-22T19:31:22.9999175Z 47 โ runOnJS(onClosed)();
2026-10-22T19:31:22.9999250Z 48 โ }
2026-10-22T19:31:22.9999310Z 49 โ },
2026-10-22T19:31:22.9999380Z 50 โ );
2026-10-22T19:31:22.9999531Z 51 โ const targetWidth = inspectorVisible ? (inspectorWidth ?? 0) : 0;
2026-10-22T19:31:22.9999619Z 52 โ renderedInspectorWidth.set(
2026-10-22T19:31:22.9999775Z 53 โ resizing ? targetWidth : withTiming(targetWidth, WORKSPACE_PANE_TIMING),
2026-10-22T19:31:22.9999840Z 54 โ );
2026-10-22T19:31:22.9999900Z 55 โ }, [
2026-10-22T19:31:22.9999974Z 56 โ inspectorProgress,
2026-10-22T19:31:23.0000047Z 57 โ inspectorVisible,
2026-10-22T19:31:23.0000120Z 58 โ inspectorWidth,
2026-10-22T19:31:23.0000189Z 59 โ onClosed,
2026-10-22T19:31:23.0000266Z 60 โ renderedInspectorWidth,
2026-10-22T19:31:23.0000365Z 61 โ resizing,
2026-10-22T19:31:23.0000427Z 62 โ ]);
2026-10-22T19:31:23.0000493Z 63 โ
2026-10-22T19:31:23.0000561Z 64 โ useEffect(() => {
2026-10-22T19:31:23.0000740Z 65 โ const targetWidth = inspectorWidth ?? 0;
2026-10-22T19:31:23.0000925Z 66 โ if (!inspectorVisible || resizing) {
2026-10-22T19:31:23.0001037Z 67 โ renderedContentWidth.value = targetWidth;
2026-10-22T19:31:23.0001132Z ยท โโโโโโโโโโโฌโโโโโโโโโ
2026-10-22T19:31:23.0001313Z ยท โฐโโ `renderedContentWidth` cannot be modified
2026-10-22T19:31:23.0001386Z 68 โ return;
2026-10-22T19:31:23.0001447Z โฐโโโโ
2026-10-22T19:31:23.0001820Z 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-22T19:31:23.0002153Z note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
2026-10-22T19:31:23.0002156Z
2026-10-22T19:31:23.0002346Z โ eslint(no-empty-pattern): Empty object binding pattern
2026-10-22T19:31:23.0002482Z โญโ[apps/server/src/processRunner.test.ts:266:14]
2026-10-22T19:31:23.0002539Z 265 โ
2026-10-22T19:31:23.0002662Z 266 โ for (const {} of ["timeout", "success"] as const) {
2026-10-22T19:31:23.0002748Z ยท โโ
2026-10-22T19:31:23.0002813Z 267 โ }
2026-10-22T19:31:23.0002870Z โฐโโโโ
2026-10-22T19:31:23.0003121Z help: Passing `null` or `undefined` will result in runtime error because `null` and `undefined` cannot be destructured.
2026-10-22T19:31:23.0003124Z
2026-10-22T19:31:23.0003428Z โ eslint(no-unused-vars): Variable 'layerTest' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0003561Z โญโ[apps/server/src/usage/UsageService.ts:169:7]
2026-10-22T19:31:23.0003621Z 168 โ
2026-10-22T19:31:23.0003714Z 169 โ const layerTest = Layer.succeed(
2026-10-22T19:31:23.0003800Z ยท โโโโโฌโโโโ
2026-10-22T19:31:23.0003950Z ยท โฐโโ 'layerTest' is declared here
2026-10-22T19:31:23.0004019Z 170 โ UsageService,
2026-10-22T19:31:23.0004079Z โฐโโโโ
2026-10-22T19:31:23.0004201Z help: Consider removing this declaration.
2026-10-22T19:31:23.0004204Z
2026-10-22T19:31:23.0004486Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:23.0004734Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:118:7]
2026-10-22T19:31:23.0004798Z 113 โ
2026-10-22T19:31:23.0004875Z 114 โ useEffect(() => {
2026-10-22T19:31:23.0004955Z ยท โโโโโฌโโโโ
2026-10-22T19:31:23.0005105Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:23.0005204Z 115 โ if (orientationSettled) return;
2026-10-22T19:31:23.0005332Z 116 โ const orientation = getNativeShowcaseOrientation();
2026-10-22T19:31:23.0005418Z 117 โ if (orientation === null) {
2026-10-22T19:31:23.0005509Z 118 โ setOrientationSettled(true);
2026-10-22T19:31:23.0005613Z ยท โโโโโโโโโโโฌโโโโโโโโโโ
2026-10-22T19:31:23.0005809Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:23.0005882Z 119 โ return;
2026-10-22T19:31:23.0005964Z โฐโโโโ
2026-10-22T19:31:23.0006749Z 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-22T19:31:23.0007235Z 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-22T19:31:23.0007238Z
2026-10-22T19:31:23.0007520Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:23.0007794Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:317:7]
2026-10-22T19:31:23.0007851Z 305 โ
2026-10-22T19:31:23.0007926Z 306 โ useEffect(() => {
2026-10-22T19:31:23.0008008Z ยท โโโโโฌโโโโ
2026-10-22T19:31:23.0008151Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:23.0008218Z 307 โ if (
2026-10-22T19:31:23.0008296Z 308 โ scene === null ||
2026-10-22T19:31:23.0008386Z 309 โ requestedScene === null ||
2026-10-22T19:31:23.0008472Z 310 โ scene !== requestedScene ||
2026-10-22T19:31:23.0008540Z 311 โ !hasFixture ||
2026-10-22T19:31:23.0008624Z 312 โ !orientationSettled ||
2026-10-22T19:31:23.0008702Z 313 โ !themeApplied ||
2026-10-22T19:31:23.0008837Z 314 โ (scene === "agent-activity" && !agentActivityStaged) ||
2026-10-22T19:31:23.0008979Z 315 โ !isShowcaseNativeContentReady({ scene, themeId, renderSignal })
2026-10-22T19:31:23.0009045Z 316 โ ) {
2026-10-22T19:31:23.0009123Z 317 โ setReadyScene(null);
2026-10-22T19:31:23.0009211Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:23.0009401Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:23.0009472Z 318 โ return;
2026-10-22T19:31:23.0009530Z โฐโโโโ
2026-10-22T19:31:23.0010174Z 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-22T19:31:23.0010517Z 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-22T19:31:23.0010525Z
2026-10-22T19:31:23.0010820Z โ eslint(no-unused-vars): Variable 'lastOutcome' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0011011Z โญโ[apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx:123:9]
2026-10-22T19:31:23.0011093Z 122 โ let cancelled = false;
2026-10-22T19:31:23.0011192Z 123 โ let lastOutcome: string | null = null;
2026-10-22T19:31:23.0011276Z ยท โโโโโโฌโโโโโ
2026-10-22T19:31:23.0011426Z ยท โฐโโ 'lastOutcome' is declared here
2026-10-22T19:31:23.0011617Z 124 โ void retryShowcaseOperation(async () => applyNativeShowcaseOrientation(orientation), {
2026-10-22T19:31:23.0011675Z โฐโโโโ
2026-10-22T19:31:23.0011788Z help: Consider removing this declaration.
2026-10-22T19:31:23.0011791Z
2026-10-22T19:31:23.0012091Z โ eslint(no-unused-vars): Parameter 'stopSessions' is declared but never used. Unused parameters should start with a '_'.
2026-10-22T19:31:23.0012306Z โญโ[apps/server/src/provider/AntigravityAuth.ts:285:20]
2026-10-22T19:31:23.0012453Z 284 โ },
2026-10-22T19:31:23.0012552Z 285 โ (effect, flow, stopSessions) =>
2026-10-22T19:31:23.0012660Z ยท โโโโโโโฌโโโโโ
2026-10-22T19:31:23.0012822Z ยท โฐโโ 'stopSessions' is declared here
2026-10-22T19:31:23.0012895Z 286 โ effect.pipe(
2026-10-22T19:31:23.0012949Z โฐโโโโ
2026-10-22T19:31:23.0013063Z help: Consider removing this parameter.
2026-10-22T19:31:23.0013066Z
2026-10-22T19:31:23.0013422Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0013601Z โญโ[apps/server/src/orchestration-v2/ThreadPullRequestService.ts:408:7]
2026-10-22T19:31:23.0013657Z 407 โ
2026-10-22T19:31:23.0013804Z 408 โ const layer = Layer.effect(ThreadPullRequestServiceV2, make);
2026-10-22T19:31:23.0013886Z ยท โโโฌโโ
2026-10-22T19:31:23.0014025Z ยท โฐโโ 'layer' is declared here
2026-10-22T19:31:23.0014083Z โฐโโโโ
2026-10-22T19:31:23.0014198Z help: Consider removing this declaration.
2026-10-22T19:31:23.0014201Z
2026-10-22T19:31:23.0014883Z โ 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-22T19:31:23.0015053Z โญโ[apps/server/src/usage/UsageService.test.ts:2383:7]
2026-10-22T19:31:23.0015166Z 2382 โ let orphanedAt: number | undefined;
2026-10-22T19:31:23.0015429Z 2383 โ โญโโถ for (let interruptAt = 1; interruptAt <= 31; interruptAt += 1) {
2026-10-22T19:31:23.0015569Z 2384 โ โ const tasks: Array<() => void> = [];
2026-10-22T19:31:23.0015734Z 2385 โ โ const dispatcher: Scheduler.SchedulerDispatcher = {
2026-10-22T19:31:23.0015881Z 2386 โ โ scheduleTask: (task) => tasks.push(task),
2026-10-22T19:31:23.0015987Z 2387 โ โ flush: () => {
2026-10-22T19:31:23.0016175Z 2388 โ โ let task: (() => void) | undefined;
2026-10-22T19:31:23.0016458Z 2389 โ โ while ((task = tasks.shift()) !== undefined) task();
2026-10-22T19:31:23.0016604Z 2390 โ โ },
2026-10-22T19:31:23.0016746Z 2391 โ โ };
2026-10-22T19:31:23.0016882Z 2392 โ โ
2026-10-22T19:31:23.0017179Z 2393 โ โ let requestFiber: Fiber.Fiber<unknown, unknown> | undefined;
2026-10-22T19:31:23.0017374Z 2394 โ โ let requestChecks = 0;
2026-10-22T19:31:23.0017574Z 2395 โ โ const scheduler: Scheduler.Scheduler = {
2026-10-22T19:31:23.0017702Z 2396 โ โ executionMode: "async",
2026-10-22T19:31:23.0017836Z 2397 โ โ makeDispatcher: () => dispatcher,
2026-10-22T19:31:23.0017960Z 2398 โ โ shouldYield: (fiber) => {
2026-10-22T19:31:23.0018183Z 2399 โ โ if (fiber !== requestFiber) return false;
2026-10-22T19:31:23.0018370Z 2400 โ โ requestChecks += 1;
2026-10-22T19:31:23.0018661Z 2401 โ โ if (requestChecks !== interruptAt) return false;
2026-10-22T19:31:23.0018887Z 2402 โ โ fiber.interruptUnsafe();
2026-10-22T19:31:23.0018993Z 2403 โ โ return true;
2026-10-22T19:31:23.0019130Z 2404 โ โ },
2026-10-22T19:31:23.0019278Z 2405 โ โ };
2026-10-22T19:31:23.0019406Z 2406 โ โ
2026-10-22T19:31:23.0019625Z 2407 โ โ const input: UsageSummaryInput = {
2026-10-22T19:31:23.0019798Z 2408 โ โ ...WINDOW,
2026-10-22T19:31:23.0020034Z 2409 โ โ sinceDay: UsageDay.make("2026-09-01"),
2026-10-22T19:31:23.0020400Z 2410 โ โ untilDay: UsageDay.make(`2026-08-${String(interruptAt).padStart(2, "0")}`),
2026-10-22T19:31:23.0020492Z 2411 โ โ };
2026-10-22T19:31:23.0020625Z 2412 โ โ const first = yield* service
2026-10-22T19:31:23.0020744Z 2413 โ โ .readSummary(input)
2026-10-22T19:31:23.0020844Z 2414 โ โ .pipe(
2026-10-22T19:31:23.0020948Z 2415 โ โ Effect.exit,
2026-10-22T19:31:23.0021122Z 2416 โ โ Effect.provideService(Scheduler.Scheduler, scheduler),
2026-10-22T19:31:23.0021239Z 2417 โ โ Effect.forkChild,
2026-10-22T19:31:23.0021333Z 2418 โ โ );
2026-10-22T19:31:23.0021441Z 2419 โ โ requestFiber = first;
2026-10-22T19:31:23.0021562Z 2420 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0021686Z 2421 โ โ dispatcher.flush();
2026-10-22T19:31:23.0021772Z 2422 โ โ
2026-10-22T19:31:23.0021939Z 2423 โ โ const second = yield* service.readSummary(input).pipe(
2026-10-22T19:31:23.0022048Z 2424 โ โ Effect.match({
2026-10-22T19:31:23.0022183Z 2425 โ โ onFailure: (error) => error.reason,
2026-10-22T19:31:23.0022320Z 2426 โ โ onSuccess: () => "success" as const,
2026-10-22T19:31:23.0022414Z 2427 โ โ }),
2026-10-22T19:31:23.0022667Z 2428 โ โ Effect.provideService(Scheduler.Scheduler, scheduler),
2026-10-22T19:31:23.0022856Z 2429 โ โ Effect.forkChild,
2026-10-22T19:31:23.0023012Z 2430 โ โ );
2026-10-22T19:31:23.0023319Z 2431 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0023542Z 2432 โ โ dispatcher.flush();
2026-10-22T19:31:23.0023779Z 2433 โ โ const secondExit = second.pollUnsafe();
2026-10-22T19:31:23.0023994Z 2434 โ โ if (secondExit === undefined) {
2026-10-22T19:31:23.0024191Z 2435 โ โ second.interruptUnsafe();
2026-10-22T19:31:23.0024387Z 2436 โ โ orphanedAt = interruptAt;
2026-10-22T19:31:23.0024495Z 2437 โ โ break;
2026-10-22T19:31:23.0024662Z 2438 โ โ }
2026-10-22T19:31:23.0024795Z 2439 โ โ if (Exit.isFailure(secondExit)) {
2026-10-22T19:31:23.0024966Z 2440 โ โ assert.fail("the matching request fiber was interrupted");
2026-10-22T19:31:23.0025060Z 2441 โ โ }
2026-10-22T19:31:23.0025228Z 2442 โ โ assert.strictEqual(secondExit.value, "invalidWindow");
2026-10-22T19:31:23.0025382Z 2443 โ โฐโโถ }
2026-10-22T19:31:23.0025442Z 2444 โ
2026-10-22T19:31:23.0025503Z โฐโโโโ
2026-10-22T19:31:23.0025506Z
2026-10-22T19:31:23.0025732Z โ eslint(no-unsafe-optional-chaining): Unsafe usage of optional chaining
2026-10-22T19:31:23.0025942Z โญโ[apps/server/src/orchestration-v2/ThreadLaunchService.test.ts:1783:8]
2026-10-22T19:31:23.0026057Z 1782 โ assert.equal(
2026-10-22T19:31:23.0026323Z 1783 โ (stored.context?.records[0] as { attachmentId: string }).attachmentId,
2026-10-22T19:31:23.0026510Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0026659Z 1784 โ stored.attachments[0]?.id,
2026-10-22T19:31:23.0026717Z โฐโโโโ
2026-10-22T19:31:23.0026903Z help: If this short-circuits with 'undefined' the evaluation will throw TypeError
2026-10-22T19:31:23.0026906Z
2026-10-22T19:31:23.0027110Z โ eslint(no-unused-vars): Type 'Scope' is imported but never used.
2026-10-22T19:31:23.0027258Z โญโ[apps/server/src/provider/ProviderAuthService.ts:15:18]
2026-10-22T19:31:23.0027349Z 14 โ import * as Layer from "effect/Layer";
2026-10-22T19:31:23.0027452Z 15 โ import type * as Scope from "effect/Scope";
2026-10-22T19:31:23.0027541Z ยท โโโฌโโ
2026-10-22T19:31:23.0027689Z ยท โฐโโ 'Scope' is imported here
2026-10-22T19:31:23.0027780Z 16 โ import * as Stream from "effect/Stream";
2026-10-22T19:31:23.0027846Z โฐโโโโ
2026-10-22T19:31:23.0027957Z help: Consider removing this import.
2026-10-22T19:31:23.0027960Z
2026-10-22T19:31:23.0028467Z โ 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-22T19:31:23.0028600Z โญโ[packages/shared/src/atomicWrite.test.ts:139:5]
2026-10-22T19:31:23.0028684Z 138 โ Effect.gen(function* () {
2026-10-22T19:31:23.0028929Z 139 โ โญโโถ while (fiber.pollUnsafe() === undefined) {
2026-10-22T19:31:23.0029156Z 140 โ โ yield* TestClock.adjust("100 millis");
2026-10-22T19:31:23.0030002Z 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-22T19:31:23.0030416Z 142 โ โ yield* Effect.promise(() => new Promise((resolve) => setImmediate(resolve)));
2026-10-22T19:31:23.0030561Z 143 โ โฐโโถ }
2026-10-22T19:31:23.0030659Z 144 โ return yield* Fiber.join(fiber);
2026-10-22T19:31:23.0030718Z โฐโโโโ
2026-10-22T19:31:23.0030722Z
2026-10-22T19:31:23.0031211Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-22T19:31:23.0031354Z โญโ[apps/server/src/serverSettings.test.ts:1741:32]
2026-10-22T19:31:23.0031585Z 1740 โ const model = createModelSelection(ProviderInstanceId.make("codex"), "gpt-5.5");
2026-10-22T19:31:23.0031937Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-22T19:31:23.0032148Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0032343Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-22T19:31:23.0032442Z โฐโโโโ
2026-10-22T19:31:23.0032447Z
2026-10-22T19:31:23.0033282Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-22T19:31:23.0033510Z โญโ[apps/server/src/serverSettings.test.ts:1742:34]
2026-10-22T19:31:23.0033857Z 1741 โ const modelJson = yield* Schema.encodeEffect(Schema.fromJsonString(ModelSelection))(model);
2026-10-22T19:31:23.0034071Z 1742 โ const scriptsJson = yield* Schema.encodeEffect(
2026-10-22T19:31:23.0034257Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0034392Z 1743 โ Schema.fromJsonString(Schema.Array(ProjectScript)),
2026-10-22T19:31:23.0034449Z โฐโโโโ
2026-10-22T19:31:23.0034453Z
2026-10-22T19:31:23.0034747Z โ unicorn(no-array-reverse): Use `Array#toReversed()` instead of `Array#reverse()`.
2026-10-22T19:31:23.0034901Z โญโ[packages/shared/src/composerContextLegacySend.ts:19:45]
2026-10-22T19:31:23.0035043Z 18 โ const occurrences = collectComposerContextReferences(text);
2026-10-22T19:31:23.0035163Z 19 โ for (const occurrence of [...occurrences].reverse()) {
2026-10-22T19:31:23.0035282Z ยท โโโโโโโ
2026-10-22T19:31:23.0035463Z 20 โ const record = recordsById.get(occurrence.contextId);
2026-10-22T19:31:23.0035566Z โฐโโโโ
2026-10-22T19:31:23.0035933Z help: `Array#reverse()` mutates the original array. Use `Array#toReversed()` to return a new reversed array without modifying the original.
2026-10-22T19:31:23.0035936Z
2026-10-22T19:31:23.0036332Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:23.0036470Z โญโ[apps/server/src/auth/RpcAuthorization.ts:236:17]
2026-10-22T19:31:23.0036658Z 235 โ const requiredScopesForSettingsUpdate = (payload: unknown) => {
2026-10-22T19:31:23.0036905Z 236 โ const input = Schema.decodeUnknownSync(SettingsUpdate)(payload);
2026-10-22T19:31:23.0037093Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0037461Z 237 โ const scopes = requiredScopesForServerSettingsPatch(input.patch);
2026-10-22T19:31:23.0037627Z โฐโโโโ
2026-10-22T19:31:23.0037631Z
2026-10-22T19:31:23.0038101Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeUnknownSync(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:23.0038234Z โญโ[apps/server/src/auth/RpcAuthorization.ts:255:26]
2026-10-22T19:31:23.0038342Z 254 โ if (method === WS_METHODS.assetsCreateUrl) {
2026-10-22T19:31:23.0038514Z 255 โ const { resource } = Schema.decodeUnknownSync(AssetCreateUrlInput)(payload);
2026-10-22T19:31:23.0038639Z ยท โโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0038710Z 256 โ return [
2026-10-22T19:31:23.0038765Z โฐโโโโ
2026-10-22T19:31:23.0038767Z
2026-10-22T19:31:23.0038998Z โ unicorn(require-module-specifiers): Empty import specifier is not allowed
2026-10-22T19:31:23.0039181Z โญโ[apps/server/src/sourceControl/SourceControlProviderRegistry.ts:15:13]
2026-10-22T19:31:23.0039264Z 14 โ } from "@t3tools/contracts";
2026-10-22T19:31:23.0039359Z 15 โ import type {} from "@t3tools/contracts";
2026-10-22T19:31:23.0039439Z ยท โโ
2026-10-22T19:31:23.0039639Z 16 โ import { detectSourceControlProviderFromRemoteUrl } from "@t3tools/shared/sourceControl";
2026-10-22T19:31:23.0039700Z โฐโโโโ
2026-10-22T19:31:23.0039789Z help: Remove empty braces
2026-10-22T19:31:23.0039792Z
2026-10-22T19:31:23.0040039Z โ unicorn(prefer-array-find): Prefer `find` over filtering and accessing the first result.
2026-10-22T19:31:23.0040177Z โญโ[apps/server/src/terminal/Manager.test.ts:731:31]
2026-10-22T19:31:23.0040242Z 730 โ );
2026-10-22T19:31:23.0040485Z 731 โ const snapshot = events.filter((event) => event.type === "snapshot").at(-1)?.snapshot;
2026-10-22T19:31:23.0040663Z ยท โโโโโโ
2026-10-22T19:31:23.0040869Z 732 โ expect(snapshot?.history).toBe("aa๐\rEND");
2026-10-22T19:31:23.0040968Z โฐโโโโ
2026-10-22T19:31:23.0041230Z help: Use `find(predicate)` instead of `filter(predicate)[0]` or similar patterns.
2026-10-22T19:31:23.0041233Z
2026-10-22T19:31:23.0041784Z โ t3code(no-inline-schema-compile): Hoist Schema.decodeEffect(...) to module scope: the compiled function is rebuilt on every call. Move it to a module-level const.
2026-10-22T19:31:23.0041934Z โญโ[apps/server/src/vcs/GitVcsDriverCore.test.ts:1713:34]
2026-10-22T19:31:23.0042091Z 1712 โ const stat = branch.files!.find((file) => file.path === path)!;
2026-10-22T19:31:23.0042254Z 1713 โ const request = yield* Schema.decodeEffect(ReviewDiffPreviewInput)({
2026-10-22T19:31:23.0042380Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0042453Z 1714 โ cwd,
2026-10-22T19:31:23.0042511Z โฐโโโโ
2026-10-22T19:31:23.0042514Z
2026-10-22T19:31:23.0042776Z โ unicorn(prefer-string-starts-ends-with): Prefer String#startsWith over a regex with a caret.
2026-10-22T19:31:23.0042907Z โญโ[apps/server/src/vcs/GitVcsDriverCore.ts:509:11]
2026-10-22T19:31:23.0043025Z 508 โ GIT_DIAGNOSTIC_LINE_PATTERN.test(line) ||
2026-10-22T19:31:23.0043247Z 509 โ (!/^remote:/.test(line) && SSH_TRANSPORT_REFUSAL_PATTERN.test(line)),
2026-10-22T19:31:23.0043405Z ยท โโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0043612Z 510 โ )
2026-10-22T19:31:23.0043782Z โฐโโโโ
2026-10-22T19:31:23.0043994Z help: Replace `/^remote:/.test(line)` with `line.startsWith('remote:')`.
2026-10-22T19:31:23.0043997Z
2026-10-22T19:31:23.0044481Z โ t3code(no-inline-schema-compile): Hoist Schema.encodeEffect(...) to module scope: both the inline schema literal and the compiled function are rebuilt on every call. Move the compiled function to a module-level const.
2026-10-22T19:31:23.0044695Z โญโ[apps/server/src/assets/AssetAccess.test.ts:1043:32]
2026-10-22T19:31:23.0044846Z 1042 โ expect(error._tag).toBe("AssetGitHubMediaUrlValidationError");
2026-10-22T19:31:23.0045055Z 1043 โ const encoded = yield* Schema.encodeEffect(Schema.fromJsonString(AssetAccessError))(error);
2026-10-22T19:31:23.0045181Z ยท โโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0045291Z 1044 โ expect(encoded).not.toContain(url);
2026-10-22T19:31:23.0045353Z โฐโโโโ
2026-10-22T19:31:23.0045355Z
2026-10-22T19:31:23.0045571Z โ eslint(no-unused-vars): Identifier 'identity' is imported but never used.
2026-10-22T19:31:23.0045686Z โญโ[apps/server/src/auth/http.ts:28:10]
2026-10-22T19:31:23.0045780Z 27 โ import * as Schema from "effect/Schema";
2026-10-22T19:31:23.0045888Z 28 โ import { identity } from "effect/Function";
2026-10-22T19:31:23.0045977Z ยท โโโโโฌโโโ
2026-10-22T19:31:23.0046130Z ยท โฐโโ 'identity' is imported here
2026-10-22T19:31:23.0046221Z 29 โ import * as Layer from "effect/Layer";
2026-10-22T19:31:23.0046281Z โฐโโโโ
2026-10-22T19:31:23.0046389Z help: Consider removing this import.
2026-10-22T19:31:23.0046391Z
2026-10-22T19:31:23.0046642Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:23.0046793Z โญโ[apps/mobile/src/state/use-model-option-memory.ts:21:7]
2026-10-22T19:31:23.0046863Z 20 โ [instanceId]: {
2026-10-22T19:31:23.0046951Z 21 โ ...(state[instanceId] ?? {}),
2026-10-22T19:31:23.0047065Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0047137Z 22 โ [model]: options,
2026-10-22T19:31:23.0047193Z โฐโโโโ
2026-10-22T19:31:23.0047483Z 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-22T19:31:23.0047486Z
2026-10-22T19:31:23.0047714Z โ eslint(no-unused-vars): Identifier 'HookForwarder' is imported but never used.
2026-10-22T19:31:23.0047834Z โญโ[infra/relay/src/http/Api.ts:69:13]
2026-10-22T19:31:23.0047988Z 68 โ import * as EnvironmentLinks from "../environments/EnvironmentLinks.ts";
2026-10-22T19:31:23.0048115Z 69 โ import * as HookForwarder from "../hooks/HookForwarder.ts";
2026-10-22T19:31:23.0048208Z ยท โโโโโโโฌโโโโโโ
2026-10-22T19:31:23.0048366Z ยท โฐโโ 'HookForwarder' is imported here
2026-10-22T19:31:23.0048477Z 70 โ import * as HeldHooks from "../hooks/HeldHooks.ts";
2026-10-22T19:31:23.0048535Z โฐโโโโ
2026-10-22T19:31:23.0048644Z help: Consider removing this import.
2026-10-22T19:31:23.0048646Z
2026-10-22T19:31:23.0049227Z โ 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-22T19:31:23.0049437Z โญโ[apps/server/src/project/ProjectEnrichmentService.test.ts:28:3]
2026-10-22T19:31:23.0049517Z 27 โ ) {
2026-10-22T19:31:23.0049737Z 28 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:23.0049895Z 29 โ โ const available = yield* service.peek(workspaceRoot);
2026-10-22T19:31:23.0050034Z 30 โ โ if (predicate(available)) return available;
2026-10-22T19:31:23.0050143Z 31 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0050278Z 32 โ โฐโโถ }
2026-10-22T19:31:23.0050476Z 33 โ return yield* Effect.die(`Project metadata for ${workspaceRoot} was not resolved in time.`);
2026-10-22T19:31:23.0050541Z โฐโโโโ
2026-10-22T19:31:23.0050547Z
2026-10-22T19:31:23.0050825Z โ react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders
2026-10-22T19:31:23.0050968Z โญโ[apps/mobile/src/state/use-vcs-action-state.ts:86:5]
2026-10-22T19:31:23.0051086Z 83 โ const [nowMs, setNowMs] = useState(() => Date.now());
2026-10-22T19:31:23.0051167Z 84 โ useEffect(() => {
2026-10-22T19:31:23.0051245Z ยท โโโโโฌโโโโ
2026-10-22T19:31:23.0051389Z ยท โฐโโ This is the containing effect
2026-10-22T19:31:23.0051487Z 85 โ if (!actionState.isRunning) return;
2026-10-22T19:31:23.0051564Z 86 โ setNowMs(Date.now());
2026-10-22T19:31:23.0051641Z ยท โโโโโฌโโโ
2026-10-22T19:31:23.0051830Z ยท โฐโโ Avoid calling setState() directly within an effect
2026-10-22T19:31:23.0051977Z 87 โ const interval = setInterval(() => setNowMs(Date.now()), 1000);
2026-10-22T19:31:23.0052034Z โฐโโโโ
2026-10-22T19:31:23.0052779Z 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-22T19:31:23.0053138Z 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-22T19:31:23.0053140Z
2026-10-22T19:31:23.0053871Z โ 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-22T19:31:23.0054079Z โญโ[apps/server/src/project/ProjectService.test.ts:94:3]
2026-10-22T19:31:23.0054143Z 93 โ ) {
2026-10-22T19:31:23.0054356Z 94 โ โญโโถ for (let attempt = 0; attempt < 100; attempt += 1) {
2026-10-22T19:31:23.0054574Z 95 โ โ const project = Option.getOrThrow(yield* service.getById(projectId));
2026-10-22T19:31:23.0054781Z 96 โ โ if (predicate(project)) return project;
2026-10-22T19:31:23.0054892Z 97 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0055025Z 98 โ โฐโโถ }
2026-10-22T19:31:23.0055194Z 99 โ return yield* Effect.die(`Project ${projectId} was not enriched in time.`);
2026-10-22T19:31:23.0055257Z โฐโโโโ
2026-10-22T19:31:23.0055259Z
2026-10-22T19:31:23.0055760Z โ 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-22T19:31:23.0055950Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:566:7]
2026-10-22T19:31:23.0056062Z 565 โ let afterSequence = created[0]!.sequence;
2026-10-22T19:31:23.0056280Z 566 โ โญโโถ for (let index = 1; index <= 32; index += 1) {
2026-10-22T19:31:23.0056391Z 567 โ โ const nextEvent = {
2026-10-22T19:31:23.0056566Z 568 โ โ id: EventId.make(`event:foundation-stream-race:${index}`),
2026-10-22T19:31:23.0056715Z 569 โ โ type: "thread.metadata-updated" as const,
2026-10-22T19:31:23.0056823Z 570 โ โ threadId,
2026-10-22T19:31:23.0056940Z 571 โ โ providerInstanceId,
2026-10-22T19:31:23.0057047Z 572 โ โ occurredAt: now,
2026-10-22T19:31:23.0057208Z 573 โ โ payload: { ...thread, title: `Race update ${index}` },
2026-10-22T19:31:23.0057352Z 574 โ โ } satisfies OrchestrationV2DomainEvent;
2026-10-22T19:31:23.0057475Z 575 โ โ const reader = yield* eventSink
2026-10-22T19:31:23.0057606Z 576 โ โ .stream({ threadId, afterSequence })
2026-10-22T19:31:23.0057746Z 577 โ โ .pipe(Stream.runHead, Effect.forkChild);
2026-10-22T19:31:23.0057870Z 578 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0058052Z 579 โ โ const written = yield* eventSink.write({ events: [nextEvent] });
2026-10-22T19:31:23.0058195Z 580 โ โ const received = yield* Fiber.join(reader);
2026-10-22T19:31:23.0058320Z 581 โ โ if (Option.isNone(received)) {
2026-10-22T19:31:23.0058534Z 582 โ โ return yield* Effect.die("The event stream ended before delivering the live event.");
2026-10-22T19:31:23.0058624Z 583 โ โ }
2026-10-22T19:31:23.0058800Z 584 โ โ assert.equal(received.value.sequence, written[0]?.sequence);
2026-10-22T19:31:23.0058959Z 585 โ โ assert.equal(received.value.event.id, nextEvent.id);
2026-10-22T19:31:23.0059153Z 586 โ โ afterSequence = received.value.sequence;
2026-10-22T19:31:23.0059331Z 587 โ โฐโโถ }
2026-10-22T19:31:23.0059400Z 588 โ }),
2026-10-22T19:31:23.0059460Z โฐโโโโ
2026-10-22T19:31:23.0059462Z
2026-10-22T19:31:23.0059961Z โ 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-22T19:31:23.0060151Z โญโ[apps/server/src/orchestration-v2/FoundationPersistence.test.ts:2327:9]
2026-10-22T19:31:23.0060241Z 2326 โ let settled = false;
2026-10-22T19:31:23.0060415Z 2327 โ โญโโถ while (!settled) {
2026-10-22T19:31:23.0060589Z 2328 โ โ settled = (yield* outbox.listByCommandId(commandId)).every(
2026-10-22T19:31:23.0060735Z 2329 โ โ (effect) => effect.status === "succeeded",
2026-10-22T19:31:23.0060828Z 2330 โ โ );
2026-10-22T19:31:23.0060967Z 2331 โ โ if (!settled) yield* Effect.yieldNow;
2026-10-22T19:31:23.0061116Z 2332 โ โฐโโถ }
2026-10-22T19:31:23.0061244Z 2333 โ }).pipe(Effect.provide(layerWorker), Effect.scoped);
2026-10-22T19:31:23.0061305Z โฐโโโโ
2026-10-22T19:31:23.0061307Z
2026-10-22T19:31:23.0061812Z โ 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-22T19:31:23.0061977Z โญโ[apps/server/src/background/HostPowerMonitor.test.ts:133:11]
2026-10-22T19:31:23.0062118Z 132 โ const monitor = yield* HostPowerMonitor.HostPowerMonitor;
2026-10-22T19:31:23.0062273Z 133 โ โญโโถ for (
2026-10-22T19:31:23.0062387Z 134 โ โ let attempt = 0;
2026-10-22T19:31:23.0062570Z 135 โ โ attempt < 100 && (yield* monitor.snapshot).onBattery !== "true";
2026-10-22T19:31:23.0062674Z 136 โ โ attempt += 1
2026-10-22T19:31:23.0062766Z 137 โ โ ) {
2026-10-22T19:31:23.0062888Z 138 โ โ yield* Effect.yieldNow;
2026-10-22T19:31:23.0063046Z 139 โ โฐโโถ }
2026-10-22T19:31:23.0063180Z 140 โ expect((yield* monitor.snapshot).onBattery).toBe("true");
2026-10-22T19:31:23.0063238Z โฐโโโโ
2026-10-22T19:31:23.0063240Z
2026-10-22T19:31:23.0063454Z โ eslint(no-unused-vars): Identifier 'Fiber' is imported but never used.
2026-10-22T19:31:23.0063559Z โญโ[apps/server/src/ws.ts:9:13]
2026-10-22T19:31:23.0063655Z 8 โ import * as Effect from "effect/Effect";
2026-10-22T19:31:23.0063742Z 9 โ import * as Fiber from "effect/Fiber";
2026-10-22T19:31:23.0063829Z ยท โโโฌโโ
2026-10-22T19:31:23.0063970Z ยท โฐโโ 'Fiber' is imported here
2026-10-22T19:31:23.0064082Z 10 โ import * as FileSystem from "effect/FileSystem";
2026-10-22T19:31:23.0064141Z โฐโโโโ
2026-10-22T19:31:23.0064311Z help: Consider removing this import.
2026-10-22T19:31:23.0064352Z
2026-10-22T19:31:23.0064595Z โ eslint(no-unused-vars): Identifier 'Schedule' is imported but never used.
2026-10-22T19:31:23.0064734Z โญโ[apps/server/src/ws.ts:16:13]
2026-10-22T19:31:23.0064832Z 15 โ import * as Ref from "effect/Ref";
2026-10-22T19:31:23.0064968Z 16 โ import * as Schedule from "effect/Schedule";
2026-10-22T19:31:23.0065106Z ยท โโโโโฌโโโ
2026-10-22T19:31:23.0065334Z ยท โฐโโ 'Schedule' is imported here
2026-10-22T19:31:23.0065427Z 17 โ import * as Schema from "effect/Schema";
2026-10-22T19:31:23.0065486Z โฐโโโโ
2026-10-22T19:31:23.0065597Z help: Consider removing this import.
2026-10-22T19:31:23.0065600Z
2026-10-22T19:31:23.0065937Z โ eslint(no-unused-vars): Variable 'projectSetupScriptRunner' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0066051Z โญโ[apps/server/src/ws.ts:1251:13]
2026-10-22T19:31:23.0066219Z 1250 โ const usageLimitSources = yield* UsageLimitSources.UsageLimitSources;
2026-10-22T19:31:23.0066438Z 1251 โ const projectSetupScriptRunner = yield* ProjectSetupScriptRunner.ProjectSetupScriptRunner;
2026-10-22T19:31:23.0066554Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:23.0066738Z ยท โฐโโ 'projectSetupScriptRunner' is declared here
2026-10-22T19:31:23.0066921Z 1252 โ const worktreeSetupTracker = yield* WorktreeSetupTracker.WorktreeSetupTracker;
2026-10-22T19:31:23.0066979Z โฐโโโโ
2026-10-22T19:31:23.0067094Z help: Consider removing this declaration.
2026-10-22T19:31:23.0067097Z
2026-10-22T19:31:23.0067424Z โ eslint(no-unused-vars): Variable 'layerFromProviderAdapter' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0067604Z โญโ[apps/server/src/orchestration-v2/ProviderAdapterRegistry.ts:346:7]
2026-10-22T19:31:23.0067663Z 345 โ
2026-10-22T19:31:23.0067776Z 346 โ const layerFromProviderAdapter: Layer.Layer<
2026-10-22T19:31:23.0067877Z ยท โโโโโโโโโโโโโฌโโโโโโโโโโโ
2026-10-22T19:31:23.0068059Z ยท โฐโโ 'layerFromProviderAdapter' is declared here
2026-10-22T19:31:23.0068154Z 347 โ ProviderAdapterRegistryV2,
2026-10-22T19:31:23.0068220Z โฐโโโโ
2026-10-22T19:31:23.0068332Z help: Consider removing this declaration.
2026-10-22T19:31:23.0068335Z
2026-10-22T19:31:23.0068646Z โ eslint(no-unused-vars): Variable 'layerUnavailable' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0068813Z โญโ[apps/server/src/orchestration-v2/Orchestrator.ts:12232:7]
2026-10-22T19:31:23.0068882Z 12231 โ
2026-10-22T19:31:23.0069037Z 12232 โ const layerUnavailable: Layer.Layer<OrchestratorV2> = Layer.succeed(
2026-10-22T19:31:23.0069133Z ยท โโโโโโโโโฌโโโโโโโ
2026-10-22T19:31:23.0069299Z ยท โฐโโ 'layerUnavailable' is declared here
2026-10-22T19:31:23.0069377Z 12233 โ OrchestratorV2,
2026-10-22T19:31:23.0069525Z โฐโโโโ
2026-10-22T19:31:23.0069646Z help: Consider removing this declaration.
2026-10-22T19:31:23.0069648Z
2026-10-22T19:31:23.0069857Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-22T19:31:23.0070161Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:555:70]
2026-10-22T19:31:23.0070381Z 554 โ assert.deepStrictEqual(
2026-10-22T19:31:23.0070563Z 555 โ (yield* Ref.get(fixture.syncCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-22T19:31:23.0070702Z ยท โฌ
2026-10-22T19:31:23.0070886Z ยท โฐโโ '_' is declared here
2026-10-22T19:31:23.0070987Z 556 โ [
2026-10-22T19:31:23.0071076Z โฐโโโโ
2026-10-22T19:31:23.0071240Z help: Consider removing this parameter.
2026-10-22T19:31:23.0071243Z
2026-10-22T19:31:23.0071444Z โ eslint(no-unused-vars): Parameter '_' is declared but never used.
2026-10-22T19:31:23.0071640Z โญโ[apps/server/src/orchestration-v2/PullRequestSyncReactor.test.ts:1155:70]
2026-10-22T19:31:23.0071731Z 1154 โ assert.deepStrictEqual(
2026-10-22T19:31:23.0071912Z 1155 โ (yield* Ref.get(fixture.linkCommands)).map(({ commandId: _, ...rest }) => rest),
2026-10-22T19:31:23.0072047Z ยท โฌ
2026-10-22T19:31:23.0072226Z ยท โฐโโ '_' is declared here
2026-10-22T19:31:23.0072293Z 1156 โ [
2026-10-22T19:31:23.0072352Z โฐโโโโ
2026-10-22T19:31:23.0072466Z help: Consider removing this parameter.
2026-10-22T19:31:23.0072469Z
2026-10-22T19:31:23.0072659Z โ eslint(no-empty-pattern): Empty array binding pattern
2026-10-22T19:31:23.0072837Z โญโ[apps/server/src/pullRequest/PullRequestService.test.ts:1429:12]
2026-10-22T19:31:23.0072901Z 1428 โ
2026-10-22T19:31:23.0072976Z 1429 โ for (const [] of [
2026-10-22T19:31:23.0073057Z ยท โโ
2026-10-22T19:31:23.0073134Z 1430 โ ["github", "github.com"],
2026-10-22T19:31:23.0073192Z โฐโโโโ
2026-10-22T19:31:23.0073496Z help: Passing non-iterable values (null, undefined, numbers, booleans, etc.) will result in a runtime error because these values are not iterable.
2026-10-22T19:31:23.0073499Z
2026-10-22T19:31:23.0073777Z โ eslint(no-unused-vars): Variable 'layer' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0073920Z โญโ[packages/provider-pi/src/server/adapter.ts:3389:7]
2026-10-22T19:31:23.0073977Z 3388 โ
2026-10-22T19:31:23.0074186Z 3389 โ const layer: Layer.Layer<ProviderAdapter.ProviderAdapterV2, never, PiAdapterV2DriverEnv> =
2026-10-22T19:31:23.0074316Z ยท โโโฌโโ
2026-10-22T19:31:23.0074486Z ยท โฐโโ 'layer' is declared here
2026-10-22T19:31:23.0074595Z 3390 โ Layer.effect(
2026-10-22T19:31:23.0074668Z โฐโโโโ
2026-10-22T19:31:23.0074802Z help: Consider removing this declaration.
2026-10-22T19:31:23.0074805Z
2026-10-22T19:31:23.0075092Z โ eslint(no-unused-vars): Variable 'layerTest' is declared but never used. Unused variables should start with a '_'.
2026-10-22T19:31:23.0075232Z โญโ[apps/server/src/telemetry/AnalyticsService.ts:340:7]
2026-10-22T19:31:23.0075293Z 339 โ
2026-10-22T19:31:23.0075406Z 340 โ const layerTest = AnalyticsService.layerTest;
2026-10-22T19:31:23.0075492Z ยท โโโโโฌโโโโ
2026-10-22T19:31:23.0075721Z ยท โฐโโ 'layerTest' is declared here
2026-10-22T19:31:23.0075855Z โฐโโโโ
2026-10-22T19:31:23.0075970Z help: Consider removing this declaration.
2026-10-22T19:31:23.0075973Z
2026-10-22T19:31:23.0076203Z โ unicorn(require-module-specifiers): Empty import specifier is not allowed
2026-10-22T19:31:23.0076316Z โญโ[packages/contracts/src/rpc.ts:295:8]
2026-10-22T19:31:23.0076396Z 294 โ } from "./device.ts";
2026-10-22T19:31:23.0076526Z 295 โ import {} from "./previewAutomation.ts";
2026-10-22T19:31:23.0076646Z ยท โโ
2026-10-22T19:31:23.0076709Z 296 โ import {
2026-10-22T19:31:23.0076767Z โฐโโโโ
2026-10-22T19:31:23.0076859Z help: Remove empty braces
2026-10-22T19:31:23.0076862Z
2026-10-22T19:31:23.0077109Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:23.0077250Z โญโ[scripts/lib/cli-external-packages.test.ts:114:11]
2026-10-22T19:31:23.0077329Z 113 โ const declared = {
2026-10-22T19:31:23.0077430Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-22T19:31:23.0077551Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0077662Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-22T19:31:23.0077724Z โฐโโโโ
2026-10-22T19:31:23.0078014Z 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-22T19:31:23.0078017Z
2026-10-22T19:31:23.0078257Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:23.0078397Z โญโ[scripts/lib/cli-external-packages.test.ts:115:11]
2026-10-22T19:31:23.0078501Z 114 โ ...(manifest.dependencies ?? {}),
2026-10-22T19:31:23.0078614Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-22T19:31:23.0078750Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0078856Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-22T19:31:23.0078916Z โฐโโโโ
2026-10-22T19:31:23.0079207Z 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-22T19:31:23.0079213Z
2026-10-22T19:31:23.0079455Z โ unicorn(no-useless-fallback-in-spread): Empty fallbacks in spreads are unnecessary
2026-10-22T19:31:23.0079595Z โญโ[scripts/lib/cli-external-packages.test.ts:116:11]
2026-10-22T19:31:23.0079773Z 115 โ ...(manifest.optionalDependencies ?? {}),
2026-10-22T19:31:23.0079955Z 116 โ ...(manifest.peerDependencies ?? {}),
2026-10-22T19:31:23.0080081Z ยท โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2026-10-22T19:31:23.0080150Z 117 โ };
2026-10-22T19:31:23.0080205Z โฐโโโโ
2026-10-22T19:31:23.0080506Z 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-22T19:31:23.0080510Z
2026-10-22T19:31:23.0080653Z Found 0 errors and 358 warnings in 5395 files (8.4s, 8 threads)
2026-10-22T19:31:23.0711391Z Post job cleanup.
2026-10-22T19:31:23.1419211Z Cache hit occurred on the primary key electron-Linux-X64-854e11ddd491bd4f350eebb67a74265df119376a3984c8e153cfe5fc8ced6309, not saving cache.
2026-10-22T19:31:23.1497115Z Post job cleanup.
2026-10-22T19:31:23.1520834Z ##[start-action display=Cache full pnpm store;id=__c45f0923-ff65-4b57-8dbd-ccb026d2da0c.__actions_cache]
2026-10-22T19:31:23.1931494Z Post job cleanup.
2026-10-22T19:31:23.2934984Z Cache hit occurred on the primary key pnpm-full-v1-Linux-X64-d651407d7d0c7ecacd035718e6d120760bb0bb1ea0b966bcda4a8197c80ebc8f, not saving cache.
2026-10-22T19:31:23.2992066Z ##[end-action id=__c45f0923-ff65-4b57-8dbd-ccb026d2da0c.__actions_cache;outcome=success;conclusion=success;duration_ms=147]
2026-10-22T19:31:23.2994657Z ##[start-action display=Cache Vite+;id=__c45f0923-ff65-4b57-8dbd-ccb026d2da0c.vp_cache]
2026-10-22T19:31:23.3026220Z Post job cleanup.
2026-10-22T19:31:23.3966831Z 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-22T19:31:23.4013263Z ##[end-action id=__c45f0923-ff65-4b57-8dbd-ccb026d2da0c.vp_cache;outcome=success;conclusion=success;duration_ms=101]
2026-10-22T19:31:23.4074858Z Post job cleanup.
2026-10-22T19:31:23.4615752Z [command]/usr/local/bin/git version
2026-10-22T19:31:23.4659436Z git version 2.55.0
2026-10-22T19:31:23.4682273Z Temporarily overriding HOME='/home/runner/_work/_temp/a768a96b-7f5a-4a6b-b484-ca0bed299f56' before making global git config changes
2026-10-22T19:31:23.4682664Z Adding repository directory to the temporary git global config as a safe directory
2026-10-22T19:31:23.4685909Z [command]/usr/local/bin/git config --global --add safe.directory /home/runner/_work/t3code/t3code
2026-10-22T19:31:23.4721800Z Removing SSH command configuration
2026-10-22T19:31:23.4725774Z [command]/usr/local/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-10-22T19:31:23.4759445Z [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-22T19:31:23.4926852Z fatal: No url found for submodule path '.repos/alchemy-effect/submodules/distilled' in .gitmodules
2026-10-22T19:31:23.4958913Z ##[warning]The process '/usr/local/bin/git' failed with exit code 128
2026-10-22T19:31:23.5006544Z A job completed hook has been configured by the self-hosted runner administrator
2026-10-22T19:31:23.5031423Z ##[group]Run '/job_completed.sh'
2026-10-22T19:31:23.5043654Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-10-22T19:31:23.5043849Z env:
2026-10-22T19:31:23.5043976Z BLACKSMITH_RUNNER_MESSAGE_WAIT_MS: 200
2026-10-22T19:31:23.5044145Z BLACKSMITH_RUNNER_ACQUIRE_JOB_MS: 513
2026-10-22T19:31:23.5044302Z BLACKSMITH_CHECK_RUN_ID: 120040171121
2026-10-22T19:31:23.5044458Z BLACKSMITH_JOB_DISPLAY_NAME: Lint
2026-10-22T19:31:23.5044659Z GITHUB_ACTIONS_CACHE_MODE: write
2026-10-22T19:31:23.5044816Z ##[endgroup]
2026-10-22T19:31:23.5148233Z Docker container cache not activated, skipping hash computation.
2026-10-22T19:31:23.5506222Z No active SSH sessions detected. Proceeding with shutdown immediately.
2026-10-22T19:31:23.5601928Z Cleaning up orphan processes