mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-05 12:25:35 +08:00
Compare commits
2 Commits
fix/redact
...
fix/chat-t
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cccc1ad268 | ||
|
|
c825d342b3 |
@@ -20,13 +20,7 @@ export function verifyWebSocketClient(
|
|||||||
dependencies: WebSocketAuthDependencies
|
dependencies: WebSocketAuthDependencies
|
||||||
): boolean {
|
): boolean {
|
||||||
const request = info.req as AuthenticatedWebSocketRequest;
|
const request = info.req as AuthenticatedWebSocketRequest;
|
||||||
const upgradeUrl = new URL(request.url ?? '/', 'http://localhost');
|
console.log('WebSocket connection attempt to:', request.url);
|
||||||
const loggedUrl = new URL(upgradeUrl);
|
|
||||||
if (loggedUrl.searchParams.has('token')) {
|
|
||||||
loggedUrl.searchParams.set('token', 'REDACTED');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log('WebSocket connection attempt to:', `${loggedUrl.pathname}${loggedUrl.search}`);
|
|
||||||
|
|
||||||
// Platform mode: use the first DB user and skip token checks.
|
// Platform mode: use the first DB user and skip token checks.
|
||||||
if (dependencies.isPlatform) {
|
if (dependencies.isPlatform) {
|
||||||
@@ -42,6 +36,7 @@ export function verifyWebSocketClient(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// OSS mode: read JWT from query string first, then Authorization header.
|
// OSS mode: read JWT from query string first, then Authorization header.
|
||||||
|
const upgradeUrl = new URL(request.url ?? '/', 'http://localhost');
|
||||||
const token =
|
const token =
|
||||||
upgradeUrl.searchParams.get('token') ??
|
upgradeUrl.searchParams.get('token') ??
|
||||||
request.headers.authorization?.split(' ')[1] ??
|
request.headers.authorization?.split(' ')[1] ??
|
||||||
|
|||||||
@@ -143,6 +143,21 @@ const createFakeSubmitEvent = () => {
|
|||||||
return { preventDefault: () => undefined } as unknown as FormEvent<HTMLFormElement>;
|
return { preventDefault: () => undefined } as unknown as FormEvent<HTMLFormElement>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const THINKING_MODE_STORAGE_KEY = 'chat-thinking-mode';
|
||||||
|
|
||||||
|
const getInitialThinkingMode = () => {
|
||||||
|
if (typeof window === 'undefined') {
|
||||||
|
return 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
const savedMode = safeLocalStorage.getItem(THINKING_MODE_STORAGE_KEY);
|
||||||
|
if (!savedMode) {
|
||||||
|
return 'none';
|
||||||
|
}
|
||||||
|
|
||||||
|
return thinkingModes.some((mode) => mode.id === savedMode) ? savedMode : 'none';
|
||||||
|
};
|
||||||
|
|
||||||
const getNotificationSessionSummary = (
|
const getNotificationSessionSummary = (
|
||||||
selectedSession: ProjectSession | null,
|
selectedSession: ProjectSession | null,
|
||||||
fallbackInput: string,
|
fallbackInput: string,
|
||||||
@@ -204,7 +219,7 @@ export function useChatComposerState({
|
|||||||
const [uploadingImages, setUploadingImages] = useState<Map<string, number>>(new Map());
|
const [uploadingImages, setUploadingImages] = useState<Map<string, number>>(new Map());
|
||||||
const [imageErrors, setImageErrors] = useState<Map<string, string>>(new Map());
|
const [imageErrors, setImageErrors] = useState<Map<string, string>>(new Map());
|
||||||
const [isTextareaExpanded, setIsTextareaExpanded] = useState(false);
|
const [isTextareaExpanded, setIsTextareaExpanded] = useState(false);
|
||||||
const [thinkingMode, setThinkingMode] = useState('none');
|
const [thinkingMode, setThinkingMode] = useState(getInitialThinkingMode);
|
||||||
const [commandModalPayload, setCommandModalPayload] = useState<CommandModalPayload | null>(null);
|
const [commandModalPayload, setCommandModalPayload] = useState<CommandModalPayload | null>(null);
|
||||||
|
|
||||||
const textareaRef = useRef<HTMLTextAreaElement>(null);
|
const textareaRef = useRef<HTMLTextAreaElement>(null);
|
||||||
@@ -564,7 +579,7 @@ export function useChatComposerState({
|
|||||||
|
|
||||||
let messageContent = currentInput;
|
let messageContent = currentInput;
|
||||||
const selectedThinkingMode = thinkingModes.find((mode: { id: string; prefix?: string }) => mode.id === thinkingMode);
|
const selectedThinkingMode = thinkingModes.find((mode: { id: string; prefix?: string }) => mode.id === thinkingMode);
|
||||||
if (selectedThinkingMode && selectedThinkingMode.prefix) {
|
if (provider === 'claude' && selectedThinkingMode && selectedThinkingMode.prefix) {
|
||||||
messageContent = `${selectedThinkingMode.prefix}: ${currentInput}`;
|
messageContent = `${selectedThinkingMode.prefix}: ${currentInput}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -749,7 +764,6 @@ export function useChatComposerState({
|
|||||||
setUploadingImages(new Map());
|
setUploadingImages(new Map());
|
||||||
setImageErrors(new Map());
|
setImageErrors(new Map());
|
||||||
setIsTextareaExpanded(false);
|
setIsTextareaExpanded(false);
|
||||||
setThinkingMode('none');
|
|
||||||
|
|
||||||
if (textareaRef.current) {
|
if (textareaRef.current) {
|
||||||
textareaRef.current.style.height = 'auto';
|
textareaRef.current.style.height = 'auto';
|
||||||
@@ -795,6 +809,10 @@ export function useChatComposerState({
|
|||||||
inputValueRef.current = input;
|
inputValueRef.current = input;
|
||||||
}, [input]);
|
}, [input]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
safeLocalStorage.setItem(THINKING_MODE_STORAGE_KEY, thinkingMode);
|
||||||
|
}, [thinkingMode]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!selectedProjectId) {
|
if (!selectedProjectId) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user