Skip to content

Commit f98f92a

Browse files
committed
Keep explicitly expanded/collapsed reasoning state in MatrixService
1 parent 5539f13 commit f98f92a

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

packages/host/app/components/ai-assistant/message/index.gts

+8-3
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ interface Signature {
7575
errors: { id: string; error: Error }[] | undefined;
7676
};
7777
index: number;
78+
eventId: string;
7879
monacoSDK: MonacoSDK;
7980
registerScroller: (args: {
8081
index: number;
@@ -200,6 +201,7 @@ function isPresent(val: SafeString | string | null | undefined) {
200201

201202
export default class AiAssistantMessage extends Component<Signature> {
202203
@service private declare cardService: CardService;
204+
@service private declare matrixService: MatrixService;
203205
get isReasoningExpandedByDefault() {
204206
let result =
205207
this.args.isStreaming &&
@@ -208,15 +210,18 @@ export default class AiAssistantMessage extends Component<Signature> {
208210
!isThinkingMessage(this.args.reasoningContent);
209211
return result;
210212
}
211-
@tracked _explicitlySetReasoningExpanded: boolean | undefined;
212213
get isReasoningExpanded() {
213214
return (
214-
this._explicitlySetReasoningExpanded ?? this.isReasoningExpandedByDefault
215+
this.matrixService.reasoningExpandedState.get(this.args.eventId) ??
216+
this.isReasoningExpandedByDefault
215217
);
216218
}
217219
updateReasoningExpanded = (ev: MouseEvent) => {
218220
ev.preventDefault();
219-
this._explicitlySetReasoningExpanded = !this.isReasoningExpanded;
221+
this.matrixService.reasoningExpandedState.set(
222+
this.args.eventId,
223+
!this.isReasoningExpanded,
224+
);
220225
};
221226

222227
<template>

packages/host/app/components/matrix/room-message.gts

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ export default class RoomMessage extends Component<Signature> {
108108
@reasoningContent={{this.message.reasoningContent}}
109109
@monacoSDK={{@monacoSDK}}
110110
@datetime={{this.message.created}}
111+
@eventId={{this.message.eventId}}
111112
@index={{@index}}
112113
@registerScroller={{@registerScroller}}
113114
@isFromAssistant={{this.isFromAssistant}}

packages/host/app/services/matrix-service.ts

+1
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ export default class MatrixService extends Service {
142142
cardsToSend: TrackedMap<string, CardDef[] | undefined> = new TrackedMap();
143143
filesToSend: TrackedMap<string, FileDef[] | undefined> = new TrackedMap();
144144
failedCommandState: TrackedMap<string, Error> = new TrackedMap();
145+
reasoningExpandedState: TrackedMap<string, boolean> = new TrackedMap();
145146
flushTimeline: Promise<void> | undefined;
146147
flushMembership: Promise<void> | undefined;
147148
flushRoomState: Promise<void> | undefined;

0 commit comments

Comments
 (0)