mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
bbe23e604e
- Skip copilotkit.connectAgent when CopilotChat lacks a caller-supplied threadId — a locally-minted UUID has no backend record, so /connect would always 404 on the intelligence platform. - Suppress the welcome screen while a connect is in flight and unconditionally when the caller has supplied a threadId (hasExplicitThreadId). Prevents the "How can I help you today?" flash on thread switch. - Gate suggestions on !isConnecting && !isRunning to avoid painting them against a mid-replay message tree. - Defer the isConnecting release by one animation frame so trailing bootstrap renders commit before the flag flips. - Reserve room for the "Powered by CopilotKit" license badge via a new --copilotkit-license-banner-offset CSS var published by the banner on mount; chat input consumes it only when bottom-anchored. - Sort and display threads by lastRunAt (fallback to updatedAt → createdAt) so metadata-only actions like archive/rename don't reshuffle the list. - useThreads waits for runtimeConnectionStatus === Connected before dispatching the store context, eliminating the speculative /threads fetch that fired before /info returned wsUrl. Threads example polish: restore button + tooltips on archive/restore/delete, segmented Active/All filter, graceful error state, skeleton rows on initial load, stable scrollbar gutter, pre-paint dark-mode class, logo position stable across app/chat modes, drop dynamic-import drawer wrapper that caused null first paint, archived-row dimming via child colors instead of opacity. Tests: - CopilotChat.absentThreadConnect: connect is skipped without a threadId, fires when supplied via prop or config. - CopilotChatView.connectingGate: isConnecting suppresses welcome; hasExplicitThreadId suppresses welcome on empty chat. - threads (core): lastRunAt sort fallback ordering. - use-threads: Connecting-state gate defers /threads until Connected. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29 lines
931 B
HTML
29 lines
931 B
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="icon" type="image/svg+xml" href="/copilotkit-logo-mark.svg" />
|
|
<title>CopilotKit + LangGraph</title>
|
|
<script>
|
|
// Apply the theme class before first paint so the page doesn't flash
|
|
// white when the OS prefers dark. Mirrors the logic in ThemeProvider;
|
|
// its later useEffect is a no-op when the class is already correct.
|
|
(function () {
|
|
try {
|
|
var prefersDark = window.matchMedia(
|
|
"(prefers-color-scheme: dark)",
|
|
).matches;
|
|
document.documentElement.classList.add(
|
|
prefersDark ? "dark" : "light",
|
|
);
|
|
} catch (_) {}
|
|
})();
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|