• turbo 2.10.12 • Packages in scope: @bb/app • Running lint, typecheck, build in 1 packages • Remote caching disabled @bb/app:lint: cache miss, executing ec367a82f3dfa44e @bb/templates:generate:plugin-scaffold: cache hit, replaying logs ea2f0aa779f1885e @bb/templates:generate:plugin-scaffold: @bb/templates:generate:plugin-scaffold: > @bb/templates@0.0.1 generate:plugin-scaffold /base/packages/templates @bb/templates:generate:plugin-scaffold: > node ./scripts/generate-plugin-scaffold.mjs @bb/templates:generate:plugin-scaffold: @bb/templates:generate:templates: cache hit, replaying logs d32bd0825a014942 @bb/templates:generate:templates: @bb/templates:generate:templates: > @bb/templates@0.0.1 generate:templates /base/packages/templates @bb/templates:generate:templates: > node ./scripts/generate-templates.mjs @bb/templates:generate:templates: @bb/plugin-build:generate: cache hit, replaying logs a723cfa27b23a368 @bb/plugin-build:generate: @bb/plugin-build:generate: > @bb/plugin-build@0.0.1 generate /base/packages/plugin-build @bb/plugin-build:generate: > node ./scripts/generate-plugin-theme.mjs && node ./scripts/generate-runtime-export-manifest.mjs @bb/plugin-build:generate: @bb/plugin-build:generate: wrote packages/plugin-build/src/generated/plugin-theme.generated.ts @bb/plugin-build:generate: wrote /base/packages/plugin-build/src/generated/runtime-export-manifest.generated.ts (react@19.2.4) @bb/app:build: cache miss, executing fef32e76591d3a3c @bb/app:typecheck: cache miss, executing f0db94f257461935 @bb/app:typecheck: @bb/app:typecheck: > @bb/app@0.0.1 typecheck /base/apps/app @bb/app:typecheck: > tsc --noEmit && tsc --noEmit -p tsconfig.node.json @bb/app:typecheck: @bb/app:lint: @bb/app:lint: > @bb/app@0.0.1 lint /base/apps/app @bb/app:lint: > oxlint src vite.config.ts vite.dev.config.ts vite-bundle-stats.ts vite-font-preload.ts vite-shared-ui-seam.ts vite-react-compiler.ts @bb/app:lint: @bb/app:build: @bb/app:build: > @bb/app@0.0.1 build /base/apps/app @bb/app:build: > node scripts/generate-pwa-icons.mjs && vite build --logLevel warn && node ../../scripts/precompress-app-dist.mjs dist @bb/app:build: @bb/app:build: @bb/app:build: WARN advancedChunks option is deprecated, please use codeSplitting instead. @bb/app:build: @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/StreamingRows.stories.tsx:107:5] @bb/app:lint: 105 | const [counter, setCounter] = useState(0); @bb/app:lint: 106 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 107 | setCounter(0); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 108 | }, [restartKey]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/StreamingRows.stories.tsx:622:5] @bb/app:lint: 620 | const [phaseIndex, setPhaseIndex] = useState(0); @bb/app:lint: 621 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 622 | setPhaseIndex(0); @bb/app:lint: : ^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 623 | }, [restartKey]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/FilePreview.tsx:448:5] @bb/app:lint: 446 | ); @bb/app:lint: 447 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 448 | setViewMode( @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 449 | getInitialFilePreviewViewMode({ @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/FilePreview.tsx:1093:5] @bb/app:lint: 1091 | @bb/app:lint: 1092 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1093 | setLoadState("loading"); @bb/app:lint: : ^^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1094 | }, [url]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/FilePreview.tsx:1098:7] @bb/app:lint: 1095 | @bb/app:lint: 1096 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1097 | if (loadState !== "loading") { @bb/app:lint: 1098 | setShowLoadingIndicator(false); @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1099 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(incompatible-library): Use of incompatible library @bb/app:lint: ,-[src/components/secondary-panel/FilePreview.tsx:924:26] @bb/app:lint: 923 | const scrollRef = useRef(null); @bb/app:lint: 924 | const rowVirtualizer = useVirtualizer({ @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- TanStack Virtual's `useVirtualizer()` API returns functions that cannot be memoized safely @bb/app:lint: 925 | count: bodyRows.length, @bb/app:lint: `---- @bb/app:lint: help: This API returns functions which cannot be memoized without leading to stale UI. To prevent this, by default React Compiler will skip memoizing this component/hook. However, you may see issues if values from this API are passed to other components/hooks that are memoized @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library @bb/app:lint: @bb/app:lint: ! react(preserve-manual-memoization): Existing memoization could not be preserved @bb/app:lint: ,-[src/views/ProjectDetailSettingsView.tsx:218:56] @bb/app:lint: 217 | const projectSources = project?.sources; @bb/app:lint: 218 | const sources = useMemo(() => projectSources ?? [], [projectSources]); @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- This dependency may be modified later @bb/app:lint: 219 | const projectName = project?.name ?? ""; @bb/app:lint: `---- @bb/app:lint: help: React Compiler has skipped optimizing this component because the existing manual memoization could not be preserved. This dependency may be mutated later, which could cause the value to change unexpectedly @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(preserve-manual-memoization): Existing memoization could not be preserved @bb/app:lint: ,-[src/views/ProjectDetailSettingsView.tsx:292:39] @bb/app:lint: 291 | }, @bb/app:lint: 292 | [localSourcePicker, pickerHostId, project], @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- This dependency may be modified later @bb/app:lint: 293 | ); @bb/app:lint: `---- @bb/app:lint: help: React Compiler has skipped optimizing this component because the existing manual memoization could not be preserved. This dependency may be mutated later, which could cause the value to change unexpectedly @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(preserve-manual-memoization): Existing memoization could not be preserved @bb/app:lint: ,-[src/views/ProjectDetailSettingsView.tsx:273:21] @bb/app:lint: 272 | @bb/app:lint: 273 | const openSetUp = useCallback( @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Manual memoization is not preserved here @bb/app:lint: 274 | (host: Host) => { @bb/app:lint: : | @bb/app:lint: : `-- Manual memoization callback starts here @bb/app:lint: 275 | if (!project) return; @bb/app:lint: `---- @bb/app:lint: help: React Compiler could not prove that this useMemo/useCallback remains memoized. Fix related React Compiler errors inside the callback first. If manual memoization is not required for semantics, remove it; otherwise restructure the callback to avoid values that invalidate memoization @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/views/ProjectDetailSettingsView.tsx:338:15] @bb/app:lint: 337 | )?.label ?? defaults.permissionMode); @bb/app:lint: 338 | const now = Date.now(); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 339 | @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/views/MachineSettingsView.tsx:341:15] @bb/app:lint: 340 | @bb/app:lint: 341 | const now = Date.now(); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 342 | const platformLabel = @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(incompatible-library): Use of incompatible library @bb/app:lint: ,-[src/components/dialogs/RemotePathBrowser.tsx:114:28] @bb/app:lint: 113 | ); @bb/app:lint: 114 | const entryVirtualizer = useVirtualizer({ @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- TanStack Virtual's `useVirtualizer()` API returns functions that cannot be memoized safely @bb/app:lint: 115 | count: entries.length, @bb/app:lint: `---- @bb/app:lint: help: This API returns functions which cannot be memoized without leading to stale UI. To prevent this, by default React Compiler will skip memoizing this component/hook. However, you may see issues if values from this API are passed to other components/hooks that are memoized @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/hooks/useAudioInputDevices.ts:125:5] @bb/app:lint: 122 | @bb/app:lint: 123 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 124 | const mediaDevices = getMediaDevices(); @bb/app:lint: 125 | setIsSupported(mediaDevices !== null); @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 126 | if (mediaDevices === null) { @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/dialogs/ProjectPathDialog.tsx:208:5] @bb/app:lint: 206 | @bb/app:lint: 207 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 208 | setValidationMessage(null); @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 209 | }, [selectedPath]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/useGitDiffPanel.ts:138:5] @bb/app:lint: 136 | ); @bb/app:lint: 137 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 138 | setMergeBaseBranchSearchQuery(""); @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 139 | setPendingGitDiffIntent(null); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/lib/use-desktop-browser-reveal.ts:40:5] @bb/app:lint: 30 | @bb/app:lint: 31 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 32 | if ( @bb/app:lint: 33 | !isFocused || @bb/app:lint: 34 | pending === null || @bb/app:lint: 35 | pending.threadId !== threadId || @bb/app:lint: 36 | !browserTabs.some((tab) => tab.id === pending.tabId) @bb/app:lint: 37 | ) @bb/app:lint: 38 | return; @bb/app:lint: 39 | activateTab(pending.tabId); @bb/app:lint: 40 | setPending(null); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 41 | }, [isFocused, threadId, pending, browserTabs, activateTab]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/DiffFileCard.tsx:191:5] @bb/app:lint: 188 | @bb/app:lint: 189 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 190 | statusRef.current = "idle"; @bb/app:lint: 191 | setState(EMPTY_BINARY_IMAGE_PREVIEW_STATE); @bb/app:lint: : ^^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 192 | }, [planIdentity, onRequestFileContents]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/DiffFileCard.tsx:272:5] @bb/app:lint: 270 | useState("preview"); @bb/app:lint: 271 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 272 | setSvgDisplayMode("preview"); @bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 273 | }, [entry.path, entry.previousPath, patchState.patch]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/conversation-message-overflow.tsx:104:7] @bb/app:lint: 101 | @bb/app:lint: 102 | useLayoutEffect(() => { @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 103 | if (!enabled) { @bb/app:lint: 104 | setMeasurement("fits"); @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 105 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/useGitDiffPanelState.ts:53:5] @bb/app:lint: 51 | @bb/app:lint: 52 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 53 | setSelectedGitDiffSelection(null); @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 54 | }, [environmentId]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/useGitDiffPanelState.ts:58:7] @bb/app:lint: 55 | @bb/app:lint: 56 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 57 | if (pendingGitDiffScrollPath) { @bb/app:lint: 58 | setSelectedGitDiffSelection(null); @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 59 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/useGitDiffPanelState.ts:64:7] @bb/app:lint: 61 | @bb/app:lint: 62 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 63 | if (pendingGitDiffCommitSha) { @bb/app:lint: 64 | setSelectedGitDiffSelection(pendingGitDiffCommitSha); @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 65 | onClearPendingGitDiffIntent?.(); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/git-diff/useGitDiffPanelState.ts:80:7] @bb/app:lint: 71 | @bb/app:lint: 72 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 73 | if ( @bb/app:lint: 74 | shouldResetSelectedGitDiffSelection( @bb/app:lint: 75 | selectedGitDiffSelection, @bb/app:lint: 76 | workspaceStatus?.mergeBase?.commits ?? [], @bb/app:lint: 77 | { hasUncommittedChanges }, @bb/app:lint: 78 | ) @bb/app:lint: 79 | ) { @bb/app:lint: 80 | setSelectedGitDiffSelection(null); @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 81 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/secondary-panel/NewTabFileSearch.tsx:504:5] @bb/app:lint: 502 | @bb/app:lint: 503 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 504 | setActiveIndex(navigableEntries.length > 0 ? 0 : -1); @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 505 | }, [navigableEntries]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/TimelineDetailScroll.tsx:86:16] @bb/app:lint: 85 |
>(new Set()); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/useThreadUnreadDividerState.ts:98:7] @bb/app:lint: 86 | @bb/app:lint: 87 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 88 | if ( @bb/app:lint: 89 | threadId === undefined || @bb/app:lint: 90 | threadLastReadAt === undefined || @bb/app:lint: 91 | threadLatestAttentionAt === undefined || @bb/app:lint: 92 | !shouldTrackThreadUnreadDivider({ @bb/app:lint: 93 | routeThreadId, @bb/app:lint: 94 | threadId, @bb/app:lint: 95 | }) @bb/app:lint: 96 | ) { @bb/app:lint: 97 | trackedThreadIdRef.current = null; @bb/app:lint: 98 | setSnapshot(null); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 99 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/useThreadSecondaryPanelVisibility.ts:87:5] @bb/app:lint: 85 | @bb/app:lint: 86 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 87 | setOpenDrawerThreadId(null); @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 88 | }, [threadId]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/useThreadSecondaryPanelVisibility.ts:92:7] @bb/app:lint: 89 | @bb/app:lint: 90 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 91 | if (!isCompactViewport) { @bb/app:lint: 92 | setOpenDrawerThreadId(null); @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 93 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/hooks/queries/use-environment-diff-patches.ts:168:5] @bb/app:lint: 159 | @bb/app:lint: 160 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 161 | targetIdentityRef.current = targetIdentity; @bb/app:lint: 162 | pendingPathsRef.current = { visible: [], overscan: [] }; @bb/app:lint: 163 | if (debounceTimerRef.current !== null) { @bb/app:lint: 164 | clearTimeout(debounceTimerRef.current); @bb/app:lint: 165 | debounceTimerRef.current = null; @bb/app:lint: 166 | } @bb/app:lint: 167 | abortPatchRequests(abortControllersRef.current); @bb/app:lint: 168 | setInFlight(EMPTY_IN_FLIGHT); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 169 | }, [targetIdentity]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/lib/plugin-code-theme.ts:41:7] @bb/app:lint: 37 | @bb/app:lint: 38 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 39 | const cached = cache.get(name); @bb/app:lint: 40 | if (cached !== undefined) { @bb/app:lint: 41 | setTheme(cached); @bb/app:lint: : ^^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 42 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/ExpandableTimelineRow.tsx:108:7] @bb/app:lint: 105 | const [collapsedPreviewActive, setCollapsedPreviewActive] = useState(false); @bb/app:lint: 106 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 107 | if (terminalAutoExpanded) { @bb/app:lint: 108 | setTerminalAutoExpandedLatch(true); @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 109 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/ExpandableTimelineRow.tsx:118:7] @bb/app:lint: 115 | (autoExpanded || terminalAutoExpanded || terminalAutoExpandedLatch))); @bb/app:lint: 116 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 117 | if (isExpanded) { @bb/app:lint: 118 | setCollapsedPreviewActive(false); @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 119 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:367:5] @bb/app:lint: 362 | : queriedReadyProviderId; @bb/app:lint: 363 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 364 | if (!shouldResolveReadyProvider || providerStatesQuery.isPending) { @bb/app:lint: 365 | return; @bb/app:lint: 366 | } @bb/app:lint: 367 | setInitialReadyProvider((current) => @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 368 | current.status === "resolved" @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:297:9] @bb/app:lint: 296 | } @bb/app:lint: 297 | if (threadResetKeyRef.current !== resetKey) { @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 298 | return nextThreadSelections; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:303:22] @bb/app:lint: 302 | nextSelections: nextThreadSelections, @bb/app:lint: 303 | touchedFields: touchedThreadFieldsRef.current, @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 304 | }); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:303:22] @bb/app:lint: 302 | nextSelections: nextThreadSelections, @bb/app:lint: 303 | touchedFields: touchedThreadFieldsRef.current, @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 304 | }); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:583:34] @bb/app:lint: 582 | const touchedFieldsPendingReset = @bb/app:lint: 583 | usesLocalThreadSelections && threadResetKeyRef.current !== resetKey; @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 584 | const effectiveInitialProviderSource: ExecutionInputFieldSource | undefined = @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:612:13] @bb/app:lint: 611 | ? new Set() @bb/app:lint: 612 | : touchedThreadFieldsRef.current, @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 613 | }), @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useThreadCreationOptions.ts:612:13] @bb/app:lint: 611 | ? new Set() @bb/app:lint: 612 | : touchedThreadFieldsRef.current, @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 613 | }), @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/hooks/useVoiceInput.ts:220:5] @bb/app:lint: 217 | @bb/app:lint: 218 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 219 | const support = resolveVoiceSupport(readVoiceSupportEnvironment()); @bb/app:lint: 220 | setIsSupported(support.isSupported); @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 221 | setUnsupportedReason(support.reason); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:441:18] @bb/app:lint: 440 | const key = timelineRowTitleRenderStateKey(args); @bb/app:lint: 441 | const cached = cacheRef.current; @bb/app:lint: : ^^^^^^^^|^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 442 | if (cached?.key === key) { @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:442:7] @bb/app:lint: 441 | const cached = cacheRef.current; @bb/app:lint: 442 | if (cached?.key === key) { @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 443 | return cached.state; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:443:12] @bb/app:lint: 442 | if (cached?.key === key) { @bb/app:lint: 443 | return cached.state; @bb/app:lint: : ^^^^^^|^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 444 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:447:11] @bb/app:lint: 446 | const state = buildTimelineRowTitleRenderState(args); @bb/app:lint: 447 | cacheRef.current = { @bb/app:lint: : ^^^^|^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 448 | key, @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:505:29] @bb/app:lint: 504 | const valuesRef = useRef(values); @bb/app:lint: 505 | if (!areReadonlySetsEqual(valuesRef.current, values)) { @bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 506 | valuesRef.current = values; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:506:14] @bb/app:lint: 505 | if (!areReadonlySetsEqual(valuesRef.current, values)) { @bb/app:lint: 506 | valuesRef.current = values; @bb/app:lint: : ^^^^|^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 507 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:508:10] @bb/app:lint: 507 | } @bb/app:lint: 508 | return valuesRef.current; @bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 509 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:842:14] @bb/app:lint: 841 |
TIMELINE_TERMINAL_EXPANSION_RETENTION) { @bb/app:lint: : ^^^^^^^^|^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1975 | const oldestId = accumulated.values().next().value; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:1975:24] @bb/app:lint: 1974 | while (accumulated.size > TIMELINE_TERMINAL_EXPANSION_RETENTION) { @bb/app:lint: 1975 | const oldestId = accumulated.values().next().value; @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 1976 | if (oldestId === undefined) { @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:1975:24] @bb/app:lint: 1974 | while (accumulated.size > TIMELINE_TERMINAL_EXPANSION_RETENTION) { @bb/app:lint: 1975 | const oldestId = accumulated.values().next().value; @bb/app:lint: : ^^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 1976 | if (oldestId === undefined) { @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:1979:7] @bb/app:lint: 1978 | } @bb/app:lint: 1979 | accumulated.delete(oldestId); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 1980 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:1979:7] @bb/app:lint: 1978 | } @bb/app:lint: 1979 | accumulated.delete(oldestId); @bb/app:lint: : ^^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Passing a ref to a function may read its value during render @bb/app:lint: 1980 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/ThreadTimelineRows.tsx:1981:20] @bb/app:lint: 1980 | } @bb/app:lint: 1981 | return new Set(accumulated); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1982 | }, [computedAutoExpansionRowIds.terminalFrontierRowIds]); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useWebSocket.ts:13:32] @bb/app:lint: 12 | ); @bb/app:lint: 13 | deletedResourceRouteChangeRef.current = handleDeletedResourceRouteChange; @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 14 | @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/hooks/queries/connection-aware-query-state.ts:68:7] @bb/app:lint: 65 | @bb/app:lint: 66 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 67 | if (connectionState === "connected") { @bb/app:lint: 68 | setElapsed(false); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 69 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailPromptArea.tsx:839:7] @bb/app:lint: 836 | const hasSentMessageEdit = sentMessageEdit !== undefined; @bb/app:lint: 837 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 838 | if (hasSentMessageEdit && isHandoffSelection) { @bb/app:lint: 839 | exitHandoff(); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 840 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/InlineThreadTitle.tsx:143:7] @bb/app:lint: 134 | @bb/app:lint: 135 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 136 | if (resetKeyRef.current !== resetKey) { @bb/app:lint: 137 | resetKeyRef.current = resetKey; @bb/app:lint: 138 | setIsEditing(false); @bb/app:lint: 139 | setDraft(title); @bb/app:lint: 140 | return; @bb/app:lint: 141 | } @bb/app:lint: 142 | if (!isEditing) { @bb/app:lint: 143 | setDraft(title); @bb/app:lint: : ^^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 144 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/promptbox/banner/QueuedMessagesList.tsx:1396:5] @bb/app:lint: 1394 | @bb/app:lint: 1395 | useLayoutEffect(() => { @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1396 | measureInlineEditorMaxHeight(); @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1397 | if (!inlineEditorActive) return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/promptbox/banner/QueuedMessagesList.tsx:1523:7] @bb/app:lint: 1517 | @bb/app:lint: 1518 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1519 | if (inlineEditor) { @bb/app:lint: 1520 | if (!wasInlineEditingRef.current) { @bb/app:lint: 1521 | inlineEditorDismissModeRef.current = null; @bb/app:lint: 1522 | } @bb/app:lint: 1523 | setMode("workspace"); @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1524 | } else if (wasInlineEditingRef.current) { @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/PluginComposerActions.stories.tsx:232:11] @bb/app:lint: 231 | const draftRef = useRef(draft); @bb/app:lint: 232 | draftRef.current = draft; @bb/app:lint: : ^^^^|^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 233 | const subscribeDraft = useComposerHostDraftNotifier(draft); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/tools/SkillsCollection.tsx:406:7] @bb/app:lint: 403 | }, [providerCounts, providerRoster, providerFilters]); @bb/app:lint: 404 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 405 | if (sortMode === "provider" && providerBucketCount <= 1) { @bb/app:lint: 406 | setSortMode("alpha"); @bb/app:lint: : ^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 407 | setSortDirection("asc"); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/tools/SkillsCollection.tsx:642:5] @bb/app:lint: 640 | @bb/app:lint: 641 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 642 | setConfirmingDelete(false); @bb/app:lint: : ^^^^^^^^^|^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 643 | }, [skill?.id]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/useQueuedMessageActions.ts:76:20] @bb/app:lint: 75 | const queuedMessagesRef = useRef([]); @bb/app:lint: 76 | queuedMessagesRef.current = queuedMessages; @bb/app:lint: : ^^^^^^^^|^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 77 | @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/tools/SkillsBrowse.tsx:257:19] @bb/app:lint: 256 | const [selectedPath, setSelectedPath] = useState("SKILL.md"); @bb/app:lint: 257 | useEffect(() => setSelectedPath("SKILL.md"), [skill.id]); @bb/app:lint: : ^^^^|^^^^ ^^^^^^^|^^^^^^^ @bb/app:lint: : | `-- Avoid calling setState() directly within an effect @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 258 | const { canOpenPreferredFileTarget, openPathInPreferredFileTarget } = @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/embedded-chat/useInlineQueuedMessageEditing.ts:107:7] @bb/app:lint: 101 | ); @bb/app:lint: 102 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 103 | if ( @bb/app:lint: 104 | inlineEditingQueuedMessageState !== null && @bb/app:lint: 105 | inlineEditingQueuedMessage === null @bb/app:lint: 106 | ) { @bb/app:lint: 107 | dismissInlineQueuedMessageEditor(); @bb/app:lint: : ^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 108 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/useInlineQueuedMessageEditing.ts:57:24] @bb/app:lint: 56 | >(new Map()); @bb/app:lint: 57 | queuedMessagesByIdRef.current = useMemo(() => { @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 58 | const next = new Map(); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:863:5] @bb/app:lint: 860 | @bb/app:lint: 861 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 862 | touchFocusGestureRef.current = null; @bb/app:lint: 863 | setActiveSelection(null); @bb/app:lint: : ^^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 864 | updateHoveredTerminalLink(null); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:695:15] @bb/app:lint: 694 | @bb/app:lint: 695 | autoFocusRef.current = autoFocus; @bb/app:lint: : ^^^^^^|^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 696 | isPanelOpenRef.current = isPanelOpen; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:696:17] @bb/app:lint: 695 | autoFocusRef.current = autoFocus; @bb/app:lint: 696 | isPanelOpenRef.current = isPanelOpen; @bb/app:lint: : ^^^^^^^|^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 697 | sessionStatusRef.current = session.status; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:697:19] @bb/app:lint: 696 | isPanelOpenRef.current = isPanelOpen; @bb/app:lint: 697 | sessionStatusRef.current = session.status; @bb/app:lint: : ^^^^^^^^|^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 698 | sessionRef.current = session; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:698:13] @bb/app:lint: 697 | sessionStatusRef.current = session.status; @bb/app:lint: 698 | sessionRef.current = session; @bb/app:lint: : ^^^^^|^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 699 | onAutoFocusHandledRef.current = onAutoFocusHandled; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:699:24] @bb/app:lint: 698 | sessionRef.current = session; @bb/app:lint: 699 | onAutoFocusHandledRef.current = onAutoFocusHandled; @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 700 | onOpenLinkRef.current = effectiveOnOpenLink; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:700:16] @bb/app:lint: 699 | onAutoFocusHandledRef.current = onAutoFocusHandled; @bb/app:lint: 700 | onOpenLinkRef.current = effectiveOnOpenLink; @bb/app:lint: : ^^^^^^|^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 701 | onSessionChangeRef.current = onSessionChange; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:701:21] @bb/app:lint: 700 | onOpenLinkRef.current = effectiveOnOpenLink; @bb/app:lint: 701 | onSessionChangeRef.current = onSessionChange; @bb/app:lint: : ^^^^^^^^^|^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 702 | onTitleChangeRef.current = onTitleChange; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:702:19] @bb/app:lint: 701 | onSessionChangeRef.current = onSessionChange; @bb/app:lint: 702 | onTitleChangeRef.current = onTitleChange; @bb/app:lint: : ^^^^^^^^|^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 703 | onUserInputRef.current = onUserInput; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/terminal/ThreadTerminalView.tsx:703:17] @bb/app:lint: 702 | onTitleChangeRef.current = onTitleChange; @bb/app:lint: 703 | onUserInputRef.current = onUserInput; @bb/app:lint: : ^^^^^^^|^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 704 | @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/useComposerAttachmentUploads.ts:71:12] @bb/app:lint: 70 | const targetRef = useRef(target); @bb/app:lint: 71 | targetRef.current = target; @bb/app:lint: : ^^^^|^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 72 | const [operation, setOperation] = useState({ @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:255:9] @bb/app:lint: 254 | const methodsAreStable = @bb/app:lint: 255 | initialMethods.current.setText === composer.setText && @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 256 | initialMethods.current.updateText === composer.updateText && @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:256:9] @bb/app:lint: 255 | initialMethods.current.setText === composer.setText && @bb/app:lint: 256 | initialMethods.current.updateText === composer.updateText && @bb/app:lint: : ^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 257 | initialMethods.current.clear === composer.clear && @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:257:9] @bb/app:lint: 256 | initialMethods.current.updateText === composer.updateText && @bb/app:lint: 257 | initialMethods.current.clear === composer.clear && @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 258 | initialMethods.current.setTextEffect === composer.setTextEffect; @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:258:9] @bb/app:lint: 257 | initialMethods.current.clear === composer.clear && @bb/app:lint: 258 | initialMethods.current.setTextEffect === composer.setTextEffect; @bb/app:lint: : ^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 259 | return ( @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:523:15] @bb/app:lint: 522 | const draftRef = useRef(draft); @bb/app:lint: 523 | draftRef.current = draft; @bb/app:lint: : ^^^^|^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 524 | const subscribeDraft = useComposerHostDraftNotifier(draft); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:695:15] @bb/app:lint: 694 | const draftRef = useRef(draft); @bb/app:lint: 695 | draftRef.current = draft; @bb/app:lint: : ^^^^|^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 696 | const subscribeDraft = useComposerHostDraftNotifier(draft); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/plugin-slot-mounts.test.tsx:828:15] @bb/app:lint: 827 | const draftRef = useRef(draft); @bb/app:lint: 828 | draftRef.current = draft; @bb/app:lint: : ^^^^|^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 829 | const subscribeDraft = useComposerHostDraftNotifier(draft); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/tools/SkillsLibrary.tsx:92:5] @bb/app:lint: 90 | const [selectedPath, setSelectedPath] = useState("SKILL.md"); @bb/app:lint: 91 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 92 | setSelectedPath("SKILL.md"); @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 93 | }, [skill?.id]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/tools/SkillsLibrary.tsx:215:5] @bb/app:lint: 211 | }); @bb/app:lint: 212 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 213 | const data = registryQuery.data; @bb/app:lint: 214 | if (data === undefined) return; @bb/app:lint: 215 | setLoadedRegistry((current) => { @bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 216 | const matches = @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/components/promptbox/banner/ThreadWorkflowCard.stories.tsx:257:20] @bb/app:lint: 256 | description: "Audit the entire repository across forty phases", @bb/app:lint: 257 | startedAt: Date.now() - 1_472_000, @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 258 | workflow: buildManyPhasesSnapshot(40, activePhase), @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/components/notifications/NotificationCenter.tsx:154:15] @bb/app:lint: 153 | const notifications = useNotifications(); @bb/app:lint: 154 | const now = Date.now(); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 155 | @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/terminal/useThreadTerminalController.ts:298:7] @bb/app:lint: 295 | @bb/app:lint: 296 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 297 | if (!shouldMountTerminalView) { @bb/app:lint: 298 | setRetainedTerminalViewId(null); @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 299 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:400:32] @bb/app:lint: 399 | }); @bb/app:lint: 400 | clearInlineAttachmentErrorRef.current = () => setInlineAttachmentError(null); @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 401 | const { typeaheadConfig, promptActions } = useComposerTypeahead({ @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:730:26] @bb/app:lint: 729 | const identity = queuedComposerHostIdentity; @bb/app:lint: 730 | const initialDraft = inlineEditingQueuedMessageRef.current?.draft ?? { @bb/app:lint: : ^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 731 | attachments: [], @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:730:26] @bb/app:lint: 729 | const identity = queuedComposerHostIdentity; @bb/app:lint: 730 | const initialDraft = inlineEditingQueuedMessageRef.current?.draft ?? { @bb/app:lint: : ^^^^^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 731 | attachments: [], @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:782:5] @bb/app:lint: 781 | const bottomComposerTextEffects = useComposerTextEffects( @bb/app:lint: 782 | bottomPluginComposerHost?.textEffectKey ?? null, @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 783 | ); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:782:5] @bb/app:lint: 781 | const bottomComposerTextEffects = useComposerTextEffects( @bb/app:lint: 782 | bottomPluginComposerHost?.textEffectKey ?? null, @bb/app:lint: : ^^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 783 | ); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:785:5] @bb/app:lint: 784 | const queuedComposerTextEffects = useComposerTextEffects( @bb/app:lint: 785 | queuedPluginComposerHost?.textEffectKey ?? null, @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 786 | ); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:785:5] @bb/app:lint: 784 | const queuedComposerTextEffects = useComposerTextEffects( @bb/app:lint: 785 | queuedPluginComposerHost?.textEffectKey ?? null, @bb/app:lint: : ^^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 786 | ); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:1044:32] @bb/app:lint: 1043 | pluginComposerHost={queuedPluginComposerHost} @bb/app:lint: 1044 | pluginComposerScope={queuedPluginComposerHost?.scope ?? null} @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1045 | textEffects={queuedComposerTextEffects} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:1044:32] @bb/app:lint: 1043 | pluginComposerHost={queuedPluginComposerHost} @bb/app:lint: 1044 | pluginComposerScope={queuedPluginComposerHost?.scope ?? null} @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1045 | textEffects={queuedComposerTextEffects} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:1140:32] @bb/app:lint: 1139 | pluginComposerHost={bottomPluginComposerHost} @bb/app:lint: 1140 | pluginComposerScope={bottomPluginComposerHost?.scope ?? null} @bb/app:lint: : ^^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1141 | textEffects={bottomComposerTextEffects} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/embedded-chat/EmbeddedThreadChat.tsx:1140:32] @bb/app:lint: 1139 | pluginComposerHost={bottomPluginComposerHost} @bb/app:lint: 1140 | pluginComposerScope={bottomPluginComposerHost?.scope ?? null} @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 1141 | textEffects={bottomComposerTextEffects} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/settings/KeyboardSettingsSection.tsx:763:30] @bb/app:lint: 762 | > @bb/app:lint: 763 | ,-> {visibleGroups.map((group) => ( @bb/app:lint: 764 | |
@bb/app:lint: 765 | |

@bb/app:lint: 766 | | {group.label} @bb/app:lint: 767 | |

@bb/app:lint: 768 | |
@bb/app:lint: 769 | | {group.commands.map((metadata) => { @bb/app:lint: 770 | | const model = commandRowModels.get(metadata.command); @bb/app:lint: 771 | | if (model === undefined) return null; @bb/app:lint: 772 | | return ( @bb/app:lint: 773 | | @bb/app:lint: 783 | | ); @bb/app:lint: 784 | | })} @bb/app:lint: 785 | |
@bb/app:lint: 786 | |
@bb/app:lint: 787 | |-> ))} @bb/app:lint: : `---- Cannot access ref value during render @bb/app:lint: 788 | {visibleGroups.length === 0 ? ( @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/settings/ProjectsSettingsSection.tsx:230:5] @bb/app:lint: 228 | const serverProjects = sidebarNavigationQuery.data?.projects; @bb/app:lint: 229 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 230 | setOptimisticOrder(null); @bb/app:lint: : ^^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 231 | }, [serverProjects]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/PluginNavSidebarItems.tsx:994:14] @bb/app:lint: 993 | type="button" @bb/app:lint: 994 | ref={dragBindings.setActivatorNodeRef} @bb/app:lint: : ^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 995 | {...dragBindings.attributes} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/PluginNavSidebarItems.tsx:995:13] @bb/app:lint: 994 | ref={dragBindings.setActivatorNodeRef} @bb/app:lint: 995 | {...dragBindings.attributes} @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 996 | {...dragBindings.listeners} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/plugin/PluginNavSidebarItems.tsx:996:13] @bb/app:lint: 995 | {...dragBindings.attributes} @bb/app:lint: 996 | {...dragBindings.listeners} @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 997 | aria-label={`Reorder ${row.title}`} @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/toc/ThreadTableOfContents.tsx:302:7] @bb/app:lint: 297 | @bb/app:lint: 298 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 299 | const host = @bb/app:lint: 300 | rootElement?.closest("[data-scroll-overlay]") ?? null; @bb/app:lint: 301 | if (typeof ResizeObserver === "undefined") { @bb/app:lint: 302 | setVisible(true); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 303 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/toc/ThreadTableOfContents.tsx:544:14] @bb/app:lint: 543 | const hasOlderRef = useRef(hasOlderTimelineRows); @bb/app:lint: 544 | hasOlderRef.current = hasOlderTimelineRows; @bb/app:lint: : ^^^^^|^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 545 | const loadOlderRef = useRef(loadOlderTimelineRows); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/toc/ThreadTableOfContents.tsx:546:15] @bb/app:lint: 545 | const loadOlderRef = useRef(loadOlderTimelineRows); @bb/app:lint: 546 | loadOlderRef.current = loadOlderTimelineRows; @bb/app:lint: : ^^^^^^|^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 547 | const jumpInProgressRef = useRef(false); @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/settings/BrowserSettingsSection.tsx:164:5] @bb/app:lint: 162 | @bb/app:lint: 163 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 164 | refresh(); @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 165 | }, [refresh]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/components/settings/BrowserSettingsSection.tsx:231:15] @bb/app:lint: 230 | const listed = state.status === "ready" ? listedSources(state.sources) : []; @bb/app:lint: 231 | const now = Date.now(); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 232 | @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(purity): Cannot call impure function during render @bb/app:lint: ,-[src/components/settings/BrowserSettingsSection.tsx:172:60] @bb/app:lint: 171 | ) => { @bb/app:lint: 172 | const record = recordFromOutcome(outcome, profileName, Date.now()); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Cannot call impure function @bb/app:lint: 173 | setRecords((current) => { @bb/app:lint: `---- @bb/app:lint: help: `Date.now` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component re-renders @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/purity @bb/app:lint: @bb/app:lint: ! react(immutability): This value cannot be modified @bb/app:lint: ,-[src/components/promptbox/composer-selection-settle.ts:104:3] @bb/app:lint: 103 | })); @bb/app:lint: 104 | controller.version = version; @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- value cannot be modified @bb/app:lint: 105 | const state = buildState(version); @bb/app:lint: `---- @bb/app:lint: help: Modifying a value returned from 'useState()', which should not be modified directly. Use the setter function to update instead @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/ui/bottom-anchored-scroll-body.tsx:780:5] @bb/app:lint: 772 | @bb/app:lint: 773 | useLayoutEffect(() => { @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 774 | if (scrollAnchorThreadId === undefined) return; @bb/app:lint: 775 | const anchor = store.get( @bb/app:lint: 776 | threadTimelineScrollAnchorAtomFamily(scrollAnchorThreadId), @bb/app:lint: 777 | ); @bb/app:lint: 778 | if (!anchor || anchor.atBottom) return; @bb/app:lint: 779 | shouldStickToBottomRef.current = false; @bb/app:lint: 780 | setIsAtBottom(false); @bb/app:lint: : ^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 781 | pendingScrollRestoreRef.current = { @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/TimelineSelectionMenu.tsx:145:19] @bb/app:lint: 144 | const virtualAnchorRef = useRef(virtualAnchor); @bb/app:lint: 145 | virtualAnchorRef.current = virtualAnchor; @bb/app:lint: : ^^^^^^^^|^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 146 | @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/useStickyBottomScroll.test.tsx:24:17] @bb/app:lint: 23 | > @bb/app:lint: 24 |
@bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 25 |
@bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/useStickyBottomScroll.test.tsx:19:12] @bb/app:lint: 18 |
@bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailView.tsx:1079:5] @bb/app:lint: 1074 | !sentMessageEditTargetStillPresent; @bb/app:lint: 1075 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1076 | if (!shouldDiscardMissingSentMessageEdit) { @bb/app:lint: 1077 | return; @bb/app:lint: 1078 | } @bb/app:lint: 1079 | setSentMessageEditHostElement(null); @bb/app:lint: : ^^^^^^^^^^^^^^|^^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1080 | setSentMessageEditSession(null); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailView.tsx:1499:5] @bb/app:lint: 1497 | }, [setStoredConversationCollapsed]); @bb/app:lint: 1498 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1499 | setHasRequestedMergeBaseOptions(false); @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1500 | }, [thread?.environmentId]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(preserve-manual-memoization): Existing memoization could not be preserved @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailView.tsx:858:5] @bb/app:lint: 853 | (open: boolean) => { @bb/app:lint: 854 | if (open && thread?.id) { @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- This dependency is inferred here @bb/app:lint: 855 | setParentThreadsRequestedForThreadId(thread.id); @bb/app:lint: 856 | } @bb/app:lint: 857 | }, @bb/app:lint: 858 | [thread?.id], @bb/app:lint: : ^^^^^^|^^^^^ @bb/app:lint: : `-- This dependency list does not match the dependencies inferred from the callback @bb/app:lint: 859 | ); @bb/app:lint: `---- @bb/app:lint: help: React Compiler has skipped optimizing this component because the existing manual memoization could not be preserved. The inferred dependencies did not match the manually specified dependencies, which could cause the value to change more or less frequently than expected. The inferred dependency was `thread`, but the source dependencies were [thread?.id]. Inferred less specific property @bb/app:lint: than source @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(preserve-manual-memoization): Existing memoization could not be preserved @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailView.tsx:2360:5] @bb/app:lint: 2345 | if ( @bb/app:lint: 2346 | thread?.environmentId === null || @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- This dependency is inferred here @bb/app:lint: 2347 | thread?.environmentId === undefined @bb/app:lint: 2348 | ) { @bb/app:lint: 2349 | return; @bb/app:lint: 2350 | } @bb/app:lint: 2351 | handleOpenLiveFilePreview({ @bb/app:lint: 2352 | target: { @bb/app:lint: 2353 | kind: "workspace", @bb/app:lint: 2354 | environmentId: thread.environmentId, @bb/app:lint: 2355 | path: relativePath, @bb/app:lint: 2356 | }, @bb/app:lint: 2357 | location: null, @bb/app:lint: 2358 | }); @bb/app:lint: 2359 | }, @bb/app:lint: 2360 | [handleOpenLiveFilePreview, thread?.environmentId], @bb/app:lint: : ^^^^^^^^^^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^^^^^^^^^^ @bb/app:lint: : `-- This dependency list does not match the dependencies inferred from the callback @bb/app:lint: 2361 | ); @bb/app:lint: `---- @bb/app:lint: help: React Compiler has skipped optimizing this component because the existing manual memoization could not be preserved. The inferred dependencies did not match the manually specified dependencies, which could cause the value to change more or less frequently than expected. The inferred dependency was `thread`, but the source dependencies were [handleOpenLiveFilePreview, @bb/app:lint: thread?.environmentId]. Inferred less specific property than source @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/views/thread-detail/ThreadDetailView.tsx:1043:26] @bb/app:lint: 1042 | const sentMessageEditEntryRef = useRef({ canEditSentMessages, thread }); @bb/app:lint: 1043 | sentMessageEditEntryRef.current = { canEditSentMessages, thread }; @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 1044 | const handleEditSentMessage = useCallback( @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useAppSettingsRouteMemory.ts:62:9] @bb/app:lint: 61 | appRoutePath: isSettingsRoute @bb/app:lint: 62 | ? lastAppRoutePathRef.current @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 63 | : currentRoutePath, @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useAppSettingsRouteMemory.ts:66:9] @bb/app:lint: 65 | ? currentRoutePath @bb/app:lint: 66 | : lastSettingsRoutePathRef.current, @bb/app:lint: : ^^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 67 | toolsBackRoutePath: isCurrentToolsRoute @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useAppSettingsRouteMemory.ts:68:9] @bb/app:lint: 67 | toolsBackRoutePath: isCurrentToolsRoute @bb/app:lint: 68 | ? lastCoreAppRoutePathRef.current @bb/app:lint: : ^^^^^^^^^^^^^^^|^^^^^^^^^^^^^^^ @bb/app:lint: : `-- Cannot access ref value during render @bb/app:lint: 69 | : currentRoutePath, @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/hooks/useAppSettingsRouteMemory.ts:60:10] @bb/app:lint: 59 | @bb/app:lint: 60 | ,-> return { @bb/app:lint: 61 | | appRoutePath: isSettingsRoute @bb/app:lint: 62 | | ? lastAppRoutePathRef.current @bb/app:lint: 63 | | : currentRoutePath, @bb/app:lint: 64 | | settingsRoutePath: isSettingsRoute @bb/app:lint: 65 | | ? currentRoutePath @bb/app:lint: 66 | | : lastSettingsRoutePathRef.current, @bb/app:lint: 67 | | toolsBackRoutePath: isCurrentToolsRoute @bb/app:lint: 68 | | ? lastCoreAppRoutePathRef.current @bb/app:lint: 69 | | : currentRoutePath, @bb/app:lint: 70 | |-> }; @bb/app:lint: : `---- Cannot access ref value during render @bb/app:lint: 71 | } @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/TimelineRowDetails.tsx:90:5] @bb/app:lint: 88 | @bb/app:lint: 89 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 90 | setLoadError(false); @bb/app:lint: : ^^^^^^|^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 91 | setLightboxOpen(false); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/ConversationAttachments.tsx:125:5] @bb/app:lint: 120 | @bb/app:lint: 121 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 122 | if (expandedImageIndex === null || expandedImageIndex < imageItems.length) { @bb/app:lint: 123 | return; @bb/app:lint: 124 | } @bb/app:lint: 125 | setExpandedImageIndex(null); @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 126 | }, [expandedImageIndex, imageItems.length]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/views/thread-detail/SplitWorkspaceSecondaryPanelHost.tsx:92:7] @bb/app:lint: 79 | @bb/app:lint: 80 | useLayoutEffect(() => { @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 81 | if (model === null) { @bb/app:lint: 82 | lastTargetRef.current = null; @bb/app:lint: 83 | return; @bb/app:lint: 84 | } @bb/app:lint: 85 | const previousTarget = lastTargetRef.current; @bb/app:lint: 86 | lastTargetRef.current = { @bb/app:lint: 87 | paneId: focusedPaneId, @bb/app:lint: 88 | contentKey: model.contentKey, @bb/app:lint: 89 | isOpen: model.isOpen, @bb/app:lint: 90 | }; @bb/app:lint: 91 | if (isPanelVisible === null) { @bb/app:lint: 92 | setIsPanelVisible(model.isOpen); @bb/app:lint: : ^^^^^^^^|^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 93 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/ThreadTitleMentions.tsx:220:18] @bb/app:lint: 219 | @bb/app:lint: 220 | flushPendingRef.current = () => { @bb/app:lint: : ^^^^^^^|^^^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 221 | const threadIds = [...pendingIdsRef.current].slice( @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/Streaming.stories.tsx:54:5] @bb/app:lint: 52 | const [step, setStep] = useState(0); @bb/app:lint: 53 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 54 | setStep(0); @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 55 | if (totalSteps === 0) return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/ui/markdown-mermaid-diagram.tsx:636:7] @bb/app:lint: 631 | @bb/app:lint: 632 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 633 | if (!open) { @bb/app:lint: 634 | const initialView = createInitialMermaidDiagramView(); @bb/app:lint: 635 | viewRef.current = initialView; @bb/app:lint: 636 | setView(initialView); @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 637 | setDragState(null); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/ui/markdown-mermaid-diagram.tsx:1020:7] @bb/app:lint: 1004 | @bb/app:lint: 1005 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 1006 | if (!hasEnteredViewport) { @bb/app:lint: 1007 | return; @bb/app:lint: 1008 | } @bb/app:lint: 1009 | const cacheKey = buildMermaidRenderCacheKey({ @bb/app:lint: 1010 | appThemeEpoch, @bb/app:lint: 1011 | preferredTheme, @bb/app:lint: 1012 | source, @bb/app:lint: 1013 | }); @bb/app:lint: 1014 | const cachedDiagram = readMermaidRenderCache(cacheKey); @bb/app:lint: 1015 | const isSourceUpdate = @bb/app:lint: 1016 | renderedSourceRef.current !== null && @bb/app:lint: 1017 | renderedSourceRef.current !== source; @bb/app:lint: 1018 | renderedSourceRef.current = source; @bb/app:lint: 1019 | if (cachedDiagram !== null) { @bb/app:lint: 1020 | setRenderState((currentState) => @bb/app:lint: : ^^^^^^^|^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 1021 | currentState.kind === "rendered" && @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(refs): Cannot access refs during render @bb/app:lint: ,-[src/components/thread/timeline/SelectableMessageProse.tsx:533:14] @bb/app:lint: 532 | const onSelectRef = useRef(onSelect); @bb/app:lint: 533 | onSelectRef.current = onSelect; @bb/app:lint: : ^^^^^|^^^^^^^^^|^^^ @bb/app:lint: : | `-- Cannot update ref value during render @bb/app:lint: : `-- This value is a ref @bb/app:lint: 534 | @bb/app:lint: `---- @bb/app:lint: 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 @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/refs @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/thread/timeline/useScrollOverflowState.ts:53:7] @bb/app:lint: 50 | @bb/app:lint: 51 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 52 | if (options.enabled === false) { @bb/app:lint: 53 | applyFlags({ above: false, below: false }); @bb/app:lint: : ^^^^^|^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 54 | return; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(immutability): This value cannot be modified @bb/app:lint: ,-[src/components/promptbox/mentions/MentionMenu.tsx:282:9] @bb/app:lint: 275 | onApply, @bb/app:lint: 276 | itemRefs, @bb/app:lint: : ^^^^|^^^ @bb/app:lint: : `-- `itemRefs` originates here @bb/app:lint: 277 | }: SuggestionRowProps) { @bb/app:lint: 278 | const isSelected = index === selectedIndex; @bb/app:lint: 279 | return ( @bb/app:lint: 280 | @bb/app:lint: 1851 | } @bb/app:lint: 1852 | /> @bb/app:lint: 1853 | ) : setupRequiredProvider === null ? null : ( @bb/app:lint: 1854 | @bb/app:lint: 1863 | navigate( @bb/app:lint: 1864 | getPluginConfigurationRoutePath({ @bb/app:lint: 1865 | pluginId: setupRequiredProvider.pluginId, @bb/app:lint: 1866 | }), @bb/app:lint: 1867 | ) @bb/app:lint: 1868 | } @bb/app:lint: 1869 | > @bb/app:lint: 1870 | Configure {setupRequiredProvider.displayName} @bb/app:lint: 1871 | @bb/app:lint: 1872 | } @bb/app:lint: 1873 | /> @bb/app:lint: 1874 | )), @bb/app:lint: 1875 | header: options.header, @bb/app:lint: 1876 | }} @bb/app:lint: 1877 | project={{ @bb/app:lint: 1878 | projects: projectOptions, @bb/app:lint: 1879 | value: options.allowNoProject && isProjectless ? null : projectId, @bb/app:lint: 1880 | onChange: handleProjectChange, @bb/app:lint: 1881 | allowNoProject: options.allowNoProject, @bb/app:lint: 1882 | createProject: options.createProject, @bb/app:lint: 1883 | isLoading: !sidebarNavigationSettled, @bb/app:lint: 1884 | disabled: @bb/app:lint: 1885 | locks.project || @bb/app:lint: 1886 | isUploading || @bb/app:lint: 1887 | isCopyingAttachments || @bb/app:lint: 1888 | isSubmitting, @bb/app:lint: 1889 | showChevronWhenDisabled: !locks.project, @bb/app:lint: 1890 | }} @bb/app:lint: 1891 | execution={{ @bb/app:lint: 1892 | providerRouting: executionOptionsRouting, @bb/app:lint: 1893 | provider: { @bb/app:lint: 1894 | options: providerOptions, @bb/app:lint: 1895 | selectedId: selectedProviderId, @bb/app:lint: 1896 | onChange: locks.provider ? undefined : handleProviderChange, @bb/app:lint: 1897 | hasMultiple: hasMultipleProviders, @bb/app:lint: 1898 | }, @bb/app:lint: 1899 | model: { @bb/app:lint: 1900 | active: activeModel, @bb/app:lint: 1901 | selected: selectedModel, @bb/app:lint: 1902 | options: modelOptions, @bb/app:lint: 1903 | moreOptions: moreModelOptions, @bb/app:lint: 1904 | isLoading: isLoadingModels, @bb/app:lint: 1905 | loadFailed: modelLoadFailed, @bb/app:lint: 1906 | loadError: modelLoadError, @bb/app:lint: 1907 | onChange: handleModelChange, @bb/app:lint: 1908 | }, @bb/app:lint: 1909 | serviceTier: { @bb/app:lint: 1910 | value: serviceTier, @bb/app:lint: 1911 | onChange: handleServiceTierChange, @bb/app:lint: 1912 | supported: supportsServiceTier, @bb/app:lint: 1913 | supportByProvider: serviceTierSupportByProvider, @bb/app:lint: 1914 | fastLabel: serviceTierFastLabel, @bb/app:lint: 1915 | }, @bb/app:lint: 1916 | reasoning: { @bb/app:lint: 1917 | value: reasoningLevel, @bb/app:lint: 1918 | options: reasoningOptions, @bb/app:lint: 1919 | onChange: handleReasoningChange, @bb/app:lint: 1920 | }, @bb/app:lint: 1921 | }} @bb/app:lint: 1922 | /> @bb/app:lint: 1923 | ); @bb/app:lint: 1924 | }, @bb/app:lint: 1925 | ,-> [ @bb/app:lint: 1926 | | activeModel, @bb/app:lint: 1927 | | attachmentError, @bb/app:lint: 1928 | | commandSuggestions, @bb/app:lint: 1929 | | currentDraft, @bb/app:lint: 1930 | | defaultMentionLinkResolver, @bb/app:lint: 1931 | | effectiveEnvironmentValue, @bb/app:lint: 1932 | | environmentProviders, @bb/app:lint: 1933 | | environmentProvidersByHostId, @bb/app:lint: 1934 | | executionOptionsRouting, @bb/app:lint: 1935 | | handleAttachFiles, @bb/app:lint: 1936 | | handleEditorFocus, @bb/app:lint: 1937 | | handleModelChange, @bb/app:lint: 1938 | | handlePermissionChange, @bb/app:lint: 1939 | | handleProjectChange, @bb/app:lint: 1940 | | handleProviderChange, @bb/app:lint: 1941 | | handleReasoningChange, @bb/app:lint: 1942 | | handleSelectProvider, @bb/app:lint: 1943 | | handleSelectHost, @bb/app:lint: 1944 | | handleServiceTierChange, @bb/app:lint: 1945 | | handleSubmit, @bb/app:lint: 1946 | | handleWorktreeChange, @bb/app:lint: 1947 | | hasMultipleProviders, @bb/app:lint: 1948 | | isCopyingAttachments, @bb/app:lint: 1949 | | isLoadingModels, @bb/app:lint: 1950 | | isProjectless, @bb/app:lint: 1951 | | isSubmitting, @bb/app:lint: 1952 | | isUploading, @bb/app:lint: 1953 | | modelLoadError, @bb/app:lint: 1954 | | modelLoadFailed, @bb/app:lint: 1955 | | modelOptions, @bb/app:lint: 1956 | | moreModelOptions, @bb/app:lint: 1957 | | permissionMode, @bb/app:lint: 1958 | | permissionModeOptions, @bb/app:lint: 1959 | | projectId, @bb/app:lint: 1960 | | projectOptions, @bb/app:lint: 1961 | | projectSources, @bb/app:lint: 1962 | | promptActions, @bb/app:lint: 1963 | | promptBoxFocusRequest, @bb/app:lint: 1964 | | promptDraft, @bb/app:lint: 1965 | | promptHistoryDrafts, @bb/app:lint: 1966 | | promptMentions, @bb/app:lint: 1967 | | pluginComposerHost, @bb/app:lint: 1968 | | providerOptions, @bb/app:lint: 1969 | | reasoningLevel, @bb/app:lint: 1970 | | reasoningOptions, @bb/app:lint: 1971 | | reuseEnvironmentId, @bb/app:lint: 1972 | | reuseThreadOptions, @bb/app:lint: 1973 | | selectedModel, @bb/app:lint: 1974 | | selectedProviderId, @bb/app:lint: 1975 | | serviceTier, @bb/app:lint: 1976 | | serviceTierSupportByProvider, @bb/app:lint: 1977 | | sidebarNavigationSettled, @bb/app:lint: 1978 | | supportsPermissionModeSelection, @bb/app:lint: 1979 | | supportsServiceTier, @bb/app:lint: 1980 | | submitDisabledReason, @bb/app:lint: 1981 | | machineServerAccessReason, @bb/app:lint: 1982 | | setupRequiredProvider, @bb/app:lint: 1983 | | environmentSetupRequiredReason, @bb/app:lint: 1984 | | navigate, @bb/app:lint: 1985 | | environmentProviderInputsSlot, @bb/app:lint: 1986 | | machineProviderInputs.control, @bb/app:lint: 1987 | | inputsControlProviderIds, @bb/app:lint: 1988 | | providerHostId, @bb/app:lint: 1989 | | textEffects, @bb/app:lint: 1990 | | serviceTierFastLabel, @bb/app:lint: 1991 | |-> ], @bb/app:lint: : `---- This dependency list does not match the dependencies inferred from the callback @bb/app:lint: 1992 | ); @bb/app:lint: `---- @bb/app:lint: help: React Compiler has skipped optimizing this component because the existing manual memoization could not be preserved. The inferred dependencies did not match the manually specified dependencies, which could cause the value to change more or less frequently than expected. The inferred dependency was `setCommandState`, but the source dependencies were [activeModel, attachmentError, @bb/app:lint: commandSuggestions, currentDraft_0, defaultMentionLinkResolver, effectiveEnvironmentValue, environmentProviders, environmentProvidersByHostId, executionOptionsRouting, handleAttachFiles, handleEditorFocus, handleModelChange, handlePermissionChange, handleProjectChange, handleProviderChange, handleReasoningChange, handleSelectProvider, handleSelectHost, handleServiceTierChange, @bb/app:lint: handleSubmit, handleWorktreeChange, hasMultipleProviders, isCopyingAttachments, isLoadingModels, isProjectless, isSubmitting, isUploading, modelLoadError, modelLoadFailed, modelOptions, moreModelOptions, permissionMode, permissionModeOptions, projectId, projectOptions, projectSources, promptActions, promptBoxFocusRequest, promptDraft, promptHistoryDrafts, promptMentions, @bb/app:lint: pluginComposerHost, providerOptions, reasoningLevel, reasoningOptions, reuseEnvironmentId, reuseThreadOptions, selectedModel, selectedProviderId, serviceTier, serviceTierSupportByProvider, sidebarNavigationSettled, supportsPermissionModeSelection, supportsServiceTier, submitDisabledReason, machineServerAccessReason, setupRequiredProvider, environmentSetupRequiredReason, navigate, @bb/app:lint: environmentProviderInputsSlot, machineProviderInputs.control, inputsControlProviderIds, providerHostId, textEffects, serviceTierFastLabel]. Inferred different dependency than source @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/sidebar/AppSidebar.tsx:166:7] @bb/app:lint: 163 | isCompactViewport && compactCustomizeMode; @bb/app:lint: 164 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 165 | if (!isCompactViewport || !openMobile || isHiddenHostedBody) { @bb/app:lint: 166 | setCompactCustomizeMode(false); @bb/app:lint: : ^^^^^^^^^^^|^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 167 | } @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/sidebar/AppSidebar.tsx:190:5] @bb/app:lint: 184 | @bb/app:lint: 185 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 186 | if (isAppCommandModifierHeld) { @bb/app:lint: 187 | showThreadShortcuts(); @bb/app:lint: 188 | return; @bb/app:lint: 189 | } @bb/app:lint: 190 | hideThreadShortcuts(); @bb/app:lint: : ^^^^^^^^^|^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 191 | }, [hideThreadShortcuts, isAppCommandModifierHeld, showThreadShortcuts]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/plugin/PluginPanelRightPanelHost.tsx:287:5] @bb/app:lint: 280 | ); @bb/app:lint: 281 | useEffect(() => { @bb/app:lint: : ^^^^|^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 282 | if (activePluginDetailId === null) return; @bb/app:lint: 283 | const catalogEntry = activePluginCatalogQuery.data?.entries.find( @bb/app:lint: 284 | (entry) => entry.pluginId === activePluginDetailId, @bb/app:lint: 285 | ); @bb/app:lint: 286 | if (catalogEntry === undefined) return; @bb/app:lint: 287 | setPluginDetailTabMetadata((current) => { @bb/app:lint: : ^^^^^^^^^^^^^|^^^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 288 | const previous = current[activePluginDetailId]; @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(set-state-in-effect): Calling setState synchronously within an effect can trigger cascading renders @bb/app:lint: ,-[src/components/plugin/PluginPanelRightPanelHost.tsx:596:5] @bb/app:lint: 594 | useState(null); @bb/app:lint: 595 | useLayoutEffect(() => { @bb/app:lint: : ^^^^^^^|^^^^^^^ @bb/app:lint: : `-- This is the containing effect @bb/app:lint: 596 | setTogglePortalTarget(findPluginRightPanelTogglePortal(panelStateId)); @bb/app:lint: : ^^^^^^^^^^|^^^^^^^^^^ @bb/app:lint: : `-- Avoid calling setState() directly within an effect @bb/app:lint: 597 | }, [panel, panelStateId]); @bb/app:lint: `---- @bb/app:lint: 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. @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect @bb/app:lint: @bb/app:lint: ! react(immutability): Cannot reassign variable after render completes @bb/app:lint: ,-[src/components/plugin/plugin-detail-opener.tsx:41:9] @bb/app:lint: 31 | const deferred = useMemo(() => { @bb/app:lint: 32 | let current: PluginDetailOpener | null = null; @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- `current` is declared here @bb/app:lint: 33 | const pending: PluginDetailDestination[] = []; @bb/app:lint: 34 | return { @bb/app:lint: 35 | open(destination: PluginDetailDestination) { @bb/app:lint: 36 | if (current !== null) return current(destination); @bb/app:lint: 37 | pending.push(destination); @bb/app:lint: 38 | return true; @bb/app:lint: 39 | }, @bb/app:lint: 40 | register(open: PluginDetailOpener) { @bb/app:lint: 41 | current = open; @bb/app:lint: : ^^^|^^^ @bb/app:lint: : `-- Cannot reassign `current` after render completes @bb/app:lint: 42 | for (const destination of pending.splice(0)) open(destination); @bb/app:lint: `---- @bb/app:lint: help: Reassigning `current` after render has completed can cause inconsistent behavior on subsequent renders. Consider using state instead @bb/app:lint: note: React Compiler skipped optimizing this component or hook. Additional guidance: https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability @bb/app:lint: @bb/app:lint: Found 191 warnings and 0 errors. @bb/app:lint: Finished in 1.7s on 1548 files with 20 rules using 8 threads. @bb/app:build: React Compiler cache: 1143 hits, 1 misses @bb/app:build: [plugin builtin:vite-reporter] @bb/app:build: (!) Some chunks are larger than 500 kB after minification. Consider: @bb/app:build: - Using dynamic import() to code-split the application @bb/app:build: - Use build.rolldownOptions.output.codeSplitting to improve chunking: https://rolldown.rs/reference/OutputOptions.codeSplitting @bb/app:build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. @bb/app:build: precompressed 447 files (447 br, 447 gzip) in /base/apps/app/dist Tasks: 6 successful, 6 total Cached: 3 cached, 6 total Time: 8.761s