diff --git a/packages/tui/src/context/data.tsx b/packages/tui/src/context/data.tsx index c43a1b7667..b352872ed3 100644 --- a/packages/tui/src/context/data.tsx +++ b/packages/tui/src/context/data.tsx @@ -386,7 +386,8 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ }, })) break - case "session.agent.selected": + case "session.agent.selected": { + const previous = store.session.info[event.data.sessionID]?.agent if (store.session.info[event.data.sessionID]) setStore("session", "info", event.data.sessionID, "agent", event.data.agent) message.update(event.data.sessionID, (draft, index) => { @@ -394,10 +395,12 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({ id: messageIDFromEvent(event.id), type: "agent-switched", agent: event.data.agent, + previous, time: { created: event.created }, }) }) break + } case "session.model.selected": if (store.session.info[event.data.sessionID]) setStore("session", "info", event.data.sessionID, "model", event.data.model) diff --git a/packages/tui/src/routes/session/index.tsx b/packages/tui/src/routes/session/index.tsx index dd3f736656..967daae9a8 100644 --- a/packages/tui/src/routes/session/index.tsx +++ b/packages/tui/src/routes/session/index.tsx @@ -1652,7 +1652,12 @@ function SessionSwitchMessageV2(props: { message: SessionMessageInfo }) { const ctx = use() const theme = useTheme() const text = () => { - if (props.message.type === "agent-switched") return `Switched agent to ${props.message.agent}` + if (props.message.type === "agent-switched") { + const agent = Locale.titlecase(props.message.agent) + if (props.message.previous && props.message.previous !== props.message.agent) + return `Switched agent from ${Locale.titlecase(props.message.previous)} to ${agent}` + return `Switched agent to ${agent}` + } if (props.message.type === "model-switched") return switchLabel(props.message.model, ctx.models(), props.message.previous) return ""