fix(group): preserve peer identity when reloading history

This commit is contained in:
red person
2026-10-28 14:27:17 +03:00
parent 57a1859f08
commit 4795c8d462
4 changed files with 85 additions and 5 deletions
+13 -2
View File
@@ -216,7 +216,18 @@ function _renderHistoryMessage(msg, modelName) {
} else {
displayContent = '';
}
if (msg.role === 'user') {
let displayRole = msg.role;
// Peer turns remain user-role context for the model, but are agent replies
// in history. Only explicit identity plus its exact prefix can opt in.
if (displayRole === 'user' && meta?.group_peer === true
&& typeof meta.group_model === 'string' && meta.group_model) {
const prefix = `[${meta.group_model}]: `;
if (displayContent.startsWith(prefix)) {
displayRole = 'assistant';
displayContent = displayContent.slice(prefix.length);
}
}
if (displayRole === 'user') {
displayContent = _stripUserVisionBlocks(displayContent);
const trimmed = displayContent.trim();
if (
@@ -233,7 +244,7 @@ function _renderHistoryMessage(msg, modelName) {
displayContent = `[Doc edit: ${docEditMatch[1]}] ${docEditMatch[3]}`;
}
}
return _addHistoryMessageWithFullRenderer(msg.role, displayContent, modelName, meta);
return _addHistoryMessageWithFullRenderer(displayRole, displayContent, modelName, meta);
}
function _clearHistoryPager() {