fix(cli): filter internal session context from history during resumption (#27391)

This commit is contained in:
Ramón Medrano Llamas
2026-05-24 08:38:53 +02:00
committed by GitHub
parent 3cc7e5b096
commit 630ecc21b9
5 changed files with 288 additions and 196 deletions
@@ -1111,6 +1111,28 @@ describe('convertSessionToHistoryFormats', () => {
});
});
it('should filter out <session_context> from UI history', () => {
const messages: MessageRecord[] = [
{
id: '1',
timestamp: new Date().toISOString(),
type: 'user',
content:
'<session_context>\nThis is the Gemini CLI\n</session_context>',
},
{
id: '2',
timestamp: new Date().toISOString(),
type: 'user',
content: 'Real message',
},
];
const result = convertSessionToHistoryFormats(messages);
expect(result.uiHistory).toHaveLength(1);
expect(result.uiHistory[0].text).toBe('Real message');
});
it('should handle missing tool descriptions and displayNames', () => {
const messages: MessageRecord[] = [
{
+10 -1
View File
@@ -606,7 +606,16 @@ export function convertSessionToHistoryFormats(
const contentString = partListUnionToString(msg.content);
const uiText = displayContentString || contentString;
if (uiText.trim()) {
// Skip internal context messages in the UI history
const trimmedText = uiText.trim();
if (
trimmedText.startsWith('<session_context>') ||
trimmedText.startsWith('<hook_context>')
) {
continue;
}
if (trimmedText) {
let messageType: MessageType;
switch (msg.type) {
case 'user':