修复消息渲染并更新发布包

This commit is contained in:
shiyue
2026-09-28 08:13:09 +08:00
parent 6fb46385e2
commit d70bbf08d9
15 changed files with 739 additions and 20 deletions

View File

@@ -761,9 +761,17 @@ function createCodexAppRuntime(deps = {}) {
if (!nextText) return '';
if (!entry.agentMessageItems) entry.agentMessageItems = new Map();
const currentItemText = entry.agentMessageItems.get(itemId) || '';
if (!entry.agentMessagePendingPrefixes) entry.agentMessagePendingPrefixes = new Map();
const pendingPrefix = entry.agentMessagePendingPrefixes.get(itemId) || '';
if (!currentItemText && !nextText.trim()) {
entry.agentMessagePendingPrefixes.set(itemId, `${pendingPrefix}${nextText}`);
return '';
}
entry.agentMessagePendingPrefixes.delete(itemId);
const separator = agentMessageSeparator(entry, itemId, nextText);
const appended = separator + nextText;
entry.agentMessageItems.set(itemId, appendCappedText(currentItemText, nextText, RUNTIME_AGENT_ITEM_MAX_CHARS));
const firstText = currentItemText ? nextText : `${pendingPrefix}${nextText}`;
const appended = separator + firstText;
entry.agentMessageItems.set(itemId, appendCappedText(currentItemText, firstText, RUNTIME_AGENT_ITEM_MAX_CHARS));
entry.fullText = appendCappedText(entry.fullText || '', appended, RUNTIME_FULL_TEXT_MAX_CHARS);
return capStreamDelta(appended);
}
@@ -773,6 +781,10 @@ function createCodexAppRuntime(deps = {}) {
if (!text) return '';
if (!entry.agentMessageItems) entry.agentMessageItems = new Map();
const currentItemText = entry.agentMessageItems.get(item.id) || '';
if (!entry.agentMessagePendingPrefixes) entry.agentMessagePendingPrefixes = new Map();
const pendingPrefix = entry.agentMessagePendingPrefixes.get(item.id) || '';
entry.agentMessagePendingPrefixes.delete(item.id);
if (!currentItemText && !text.trim()) return '';
if (currentItemText && text.startsWith(currentItemText)) {
const remainder = text.slice(currentItemText.length);
entry.agentMessageItems.set(item.id, keepTail(text, RUNTIME_AGENT_ITEM_MAX_CHARS));
@@ -780,9 +792,12 @@ function createCodexAppRuntime(deps = {}) {
return capStreamDelta(remainder);
}
if (currentItemText === text) return '';
const separator = agentMessageSeparator(entry, item.id, text);
const appended = separator + text;
entry.agentMessageItems.set(item.id, keepTail(text, RUNTIME_AGENT_ITEM_MAX_CHARS));
const completedText = !currentItemText && pendingPrefix && !text.startsWith(pendingPrefix)
? `${pendingPrefix}${text}`
: text;
const separator = agentMessageSeparator(entry, item.id, completedText);
const appended = separator + completedText;
entry.agentMessageItems.set(item.id, keepTail(completedText, RUNTIME_AGENT_ITEM_MAX_CHARS));
entry.fullText = appendCappedText(entry.fullText || '', appended, RUNTIME_FULL_TEXT_MAX_CHARS);
return capStreamDelta(appended);
}