release v1.22.0
This commit is contained in:
@@ -748,7 +748,11 @@ export const ChatContainer: React.FC<ChatContainerProps> = ({
|
||||
// One gate per opened session; the scroll hook holds it until the
|
||||
// viewport is pinned to the end so the first visible frame is already
|
||||
// at the bottom.
|
||||
const revealGate = React.useMemo(() => createTimelineRevealGate(), [currentSessionKey]);
|
||||
const revealGateRef = React.useRef<{ key: string | null; gate: TimelineRevealGate } | null>(null);
|
||||
if (revealGateRef.current?.key !== currentSessionKey) {
|
||||
revealGateRef.current = { key: currentSessionKey, gate: createTimelineRevealGate() };
|
||||
}
|
||||
const revealGate = revealGateRef.current.gate;
|
||||
const chatColumnSession = React.useMemo<ChatColumnSession>(
|
||||
() => ({ sessionId: currentSessionId ?? null, directory: currentSessionId ? effectiveSessionDirectory ?? null : null }),
|
||||
[currentSessionId, effectiveSessionDirectory],
|
||||
|
||||
@@ -962,7 +962,7 @@ const useMorphdomMarkdown = ({
|
||||
// or re-decorating ordinary blocks.
|
||||
refreshMermaidViewers();
|
||||
}
|
||||
}, [containerRef, text, streaming, imageMode, ctx, refreshMermaidViewers]);
|
||||
}, [containerRef, text, streaming, imageMode, ctx, refreshMermaidViewers, revealGate]);
|
||||
|
||||
React.useEffect(() => () => {
|
||||
mermaidViewerRef.current?.cleanup();
|
||||
|
||||
@@ -29,7 +29,6 @@ import { useGlobalSessionsStore } from '@/stores/useGlobalSessionsStore';
|
||||
import { streamPerfCount } from '@/stores/utils/streamDebug';
|
||||
import { useFeatureFlagsStore } from '@/stores/useFeatureFlagsStore';
|
||||
|
||||
import { useRuntimeAPIs } from '@/hooks/useRuntimeAPIs';
|
||||
import { useDesktopWindowControlsLayout } from '@/hooks/useDesktopWindowControlsLayout';
|
||||
import { ContextUsageDisplay } from '@/components/ui/ContextUsageDisplay';
|
||||
import { WindowsWindowControls } from '@/components/desktop/WindowsWindowControls';
|
||||
|
||||
@@ -49,11 +49,11 @@ export function LinearProjectMapping({
|
||||
console.error('Failed to load Linear mapping:', error);
|
||||
setLoadFailed(true);
|
||||
}
|
||||
}, [connected, linear, organizationId]);
|
||||
}, [connected, linear]);
|
||||
|
||||
React.useEffect(() => {
|
||||
void loadMapping();
|
||||
}, [loadMapping]);
|
||||
}, [loadMapping, organizationId]);
|
||||
|
||||
const saveMapping = React.useCallback(async (next: LinearMappingResult) => {
|
||||
const teamProjectPaths: { [teamId: string]: string } = {};
|
||||
|
||||
Reference in New Issue
Block a user