Compare commits

...

1 Commits

Author SHA1 Message Date
Zeno Kapitein 38226b9413 Simplify AI Chat
- Add new `note` field
- Always clear `messages` when posting a message
- Remove follow-up questions
2025-09-16 16:29:10 +02:00
3 changed files with 62 additions and 51 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"gitbook": patch
---
Simplify AI Chat
@@ -21,6 +21,7 @@ export type AIChatMessage = {
role: AIMessageRole;
content: React.ReactNode;
query?: string;
note?: string;
};
export type AIChatPendingTool = {
@@ -391,11 +392,11 @@ export function AIChatProvider(props: {
return {
...state,
messages: [
...state.messages,
{
role: AIMessageRole.User,
content: input.message,
query: input.message,
note: state.messages.length > 0 ? 'Starting a new chat' : undefined,
},
],
query: input.message,
@@ -6,14 +6,13 @@ import type React from 'react';
import type { AIChatController, AIChatState } from '../AI';
import { AIChatToolConfirmations } from './AIChatToolConfirmations';
import { AIResponseFeedback } from './AIResponseFeedback';
import { AIChatFollowupSuggestions } from './AiChatFollowupSuggestions';
export function AIChatMessages(props: {
chat: AIChatState;
chatController: AIChatController;
lastUserMessageRef?: React.RefObject<HTMLDivElement>;
}) {
const { chat, chatController, lastUserMessageRef } = props;
const { chat, lastUserMessageRef } = props;
return (
<>
@@ -24,6 +23,15 @@ export function AIChatMessages(props: {
index === chat.messages.map((m) => m.role).lastIndexOf(AIMessageRole.User);
return (
<>
{message.note ? (
<div
key={`${index}-note`}
className="self-center text-tint-subtle text-xs"
>
{message.note}
</div>
) : null}
<div
ref={isLastUserMessage ? lastUserMessageRef : undefined}
data-testid="ai-chat-message"
@@ -68,13 +76,10 @@ export function AIChatMessages(props: {
/>
) : null}
<AIChatToolConfirmations chat={chat} />
<AIChatFollowupSuggestions
chat={chat}
chatController={chatController}
/>
</>
) : null}
</div>
</>
);
})}
</>