Skip to content

Commit efc9656

Browse files
chore(ask_sb): Allow for multiple user feedback (#395)
1 parent 4e34406 commit efc9656

File tree

5 files changed

+23
-23
lines changed

5 files changed

+23
-23
lines changed

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10-
### Fixed
11-
- Fixed onboarding infinite loop when GCP IAP Auth is enabled. [#381](https://github.com/sourcebot-dev/sourcebot/pull/381)
12-
1310
### Added
1411
- Introducing Ask Sourcebot - ask natural langauge about your codebase. Get back comprehensive Markdown responses with inline citations back to the code. Bring your own LLM api key. [#392](https://github.com/sourcebot-dev/sourcebot/pull/392)
1512

13+
### Fixed
14+
- Fixed onboarding infinite loop when GCP IAP Auth is enabled. [#381](https://github.com/sourcebot-dev/sourcebot/pull/381)
15+
1616
## [4.5.3] - 2025-07-20
1717

1818
### Changed

packages/web/src/features/chat/actions.ts

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -212,14 +212,14 @@ export const deleteChat = async ({ chatId }: { chatId: string }, domain: string)
212212
)
213213
);
214214

215-
export const submitFeedback = async ({
216-
chatId,
217-
messageId,
218-
feedbackType
219-
}: {
220-
chatId: string,
221-
messageId: string,
222-
feedbackType: 'like' | 'dislike'
215+
export const submitFeedback = async ({
216+
chatId,
217+
messageId,
218+
feedbackType
219+
}: {
220+
chatId: string,
221+
messageId: string,
222+
feedbackType: 'like' | 'dislike'
223223
}, domain: string) => sew(() =>
224224
withAuth((userId) =>
225225
withOrgMembership(userId, domain, async ({ org }) => {
@@ -246,13 +246,16 @@ export const submitFeedback = async ({
246246
...message,
247247
metadata: {
248248
...message.metadata,
249-
feedback: {
250-
type: feedbackType,
251-
timestamp: new Date().toISOString(),
252-
userId: userId,
253-
}
249+
feedback: [
250+
...(message.metadata?.feedback ?? []),
251+
{
252+
type: feedbackType,
253+
timestamp: new Date().toISOString(),
254+
userId: userId,
255+
}
256+
]
254257
}
255-
};
258+
} satisfies SBChatMessage;
256259
}
257260
return message;
258261
});

packages/web/src/features/chat/components/chatThread/answerCard.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ interface AnswerCardProps {
2323
answerText: string;
2424
messageId: string;
2525
chatId: string;
26-
feedback?: 'like' | 'dislike' | undefined;
2726
traceId?: string;
2827
}
2928

@@ -36,7 +35,6 @@ export const AnswerCard = forwardRef<HTMLDivElement, AnswerCardProps>(({
3635
answerText,
3736
messageId,
3837
chatId,
39-
feedback: _feedback,
4038
traceId,
4139
}, forwardedRef) => {
4240
const markdownRendererRef = useRef<HTMLDivElement>(null);
@@ -45,7 +43,7 @@ export const AnswerCard = forwardRef<HTMLDivElement, AnswerCardProps>(({
4543
const { toast } = useToast();
4644
const domain = useDomain();
4745
const [isSubmittingFeedback, setIsSubmittingFeedback] = useState(false);
48-
const [feedback, setFeedback] = useState<'like' | 'dislike' | undefined>(_feedback);
46+
const [feedback, setFeedback] = useState<'like' | 'dislike' | undefined>(undefined);
4947
const captureEvent = useCaptureEvent();
5048

5149
useImperativeHandle(

packages/web/src/features/chat/components/chatThread/chatThreadListItem.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,6 @@ export const ChatThreadListItem = forwardRef<HTMLDivElement, ChatThreadListItemP
409409
answerText={answerPart.text.replace(ANSWER_TAG, '').trim()}
410410
chatId={chatId}
411411
messageId={assistantMessage.id}
412-
feedback={messageMetadata?.feedback?.type}
413412
traceId={messageMetadata?.traceId}
414413
/>
415414
) : !isStreaming && (

packages/web/src/features/chat/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ export const sbChatMessageMetadataSchema = z.object({
4545
totalOutputTokens: z.number().optional(),
4646
totalTokens: z.number().optional(),
4747
totalResponseTimeMs: z.number().optional(),
48-
feedback: z.object({
48+
feedback: z.array(z.object({
4949
type: z.enum(['like', 'dislike']),
5050
timestamp: z.string(), // ISO date string
5151
userId: z.string(),
52-
}).optional(),
52+
})).optional(),
5353
selectedRepos: z.array(z.string()).optional(),
5454
traceId: z.string().optional(),
5555
});

0 commit comments

Comments
 (0)