fix(workbench): complete profile and channel flows

This commit is contained in:
2026-07-24 14:46:38 +08:00
parent d7eb20a85f
commit f430566976
21 changed files with 563 additions and 151 deletions

View File

@@ -50,7 +50,7 @@ export function ProjectAi({
setSelectedExpertID(null)
setExpertQuery('')
setExpertCategory('all')
setPrompt('')
setPrompt(readPromptDraft(projectId))
setLoading(true)
setLoadingExperts(true)
setCreating(false)
@@ -91,6 +91,15 @@ export function ProjectAi({
}
}, [onListExperts, onListSessions, projectId])
useEffect(() => {
try {
if (prompt) localStorage.setItem(promptDraftKey(projectId), prompt)
else localStorage.removeItem(promptDraftKey(projectId))
} catch {
// Draft persistence is best effort; an unavailable browser store must not block chat.
}
}, [projectId, prompt])
const selectedSession = useMemo(
() => sessions.find((session) => session.id === selectedSessionID) ?? null,
[selectedSessionID, sessions],
@@ -345,3 +354,15 @@ function sessionTitle(message: string) {
const characters = Array.from(firstLine)
return characters.length > 36 ? `${characters.slice(0, 36).join('')}` : firstLine
}
function promptDraftKey(projectId: string) {
return `senlin:ai:prompt:${projectId}`
}
function readPromptDraft(projectId: string) {
try {
return localStorage.getItem(promptDraftKey(projectId)) ?? ''
} catch {
return ''
}
}