Add inline persistent Agent mentions
TestFlight / Build and upload (push) Successful in 1m57s

This commit is contained in:
Sybil Agent
2026-10-29 18:28:52 -07:00
parent 35a6c537ad
commit 5d738f897b
23 changed files with 1772 additions and 44 deletions
+15 -1
View File
@@ -94,6 +94,7 @@ import {
createStreamingAssistantMetadata,
createStreamingAttemptState,
finalizeStreamingAssistant,
markStreamingAssistantAsAgentAside,
promoteStreamingAssistantTrace,
setStreamingAssistantSegment,
transitionStreamingToolCall,
@@ -2628,6 +2629,7 @@ export default function App() {
...baseChat.messages
.filter((message) => !isToolCallLogMessage(message))
.map((message) => ({
id: message.id,
role: message.role,
content: message.content,
...(message.name ? { name: message.name } : {}),
@@ -2640,7 +2642,7 @@ export default function App() {
},
];
if (shouldRequestChatTitle(baseChat, pendingTitleGenerationRef.current.has(chatId))) {
if (shouldRequestChatTitle(baseChat, pendingTitleGenerationRef.current.has(chatId)) && !content.toLowerCase().includes("@sybil")) {
pendingTitleGenerationRef.current.add(chatId);
const titleSeed = content || buildAttachmentSummary(attachments) || "Uploaded files";
void suggestChatTitle({ chatId, content: titleSeed })
@@ -2676,6 +2678,18 @@ export default function App() {
{
onMeta: (payload) => {
if (payload.chatId !== chatId) return;
if (payload.agentAside) {
setPendingChatStates((current) => {
const pendingState = current[chatId];
if (!pendingState) return current;
return {
...current,
[chatId]: {
messages: markStreamingAssistantAsAgentAside(pendingState.messages, "temp-assistant-"),
},
};
});
}
},
onToolCall: (payload) => {
const transition = transitionStreamingToolCall(streamingAttempt, payload);