



























@@ -1230,6 +1230,7 @@ export const agentHandlers: GatewayRequestHandlers = {
12301230let isNewSession = false;
12311231let skipTimestampInjection = false;
12321232let shouldPrependStartupContext = false;
1233+let skipAgentInitialSessionTouch = false;
1233123412341235const resetCommandMatch = message.match(RESET_COMMAND_RE);
12351236if (resetCommandMatch && requestedSessionKey) {
@@ -1548,42 +1549,47 @@ export const agentHandlers: GatewayRequestHandlers = {
15481549if (storePath && !suppressVisibleSessionEffects) {
15491550const requestedStoreKey = requestedSessionKey;
15501551let deniedBySendPolicy = false;
1551-const persisted = await updateSessionStore(storePath, (store) => {
1552-const { primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1553- cfg,
1554-key: requestedStoreKey,
1555- store,
1556-});
1557-const freshEntry = store[primaryKey];
1558-patchBuild = buildSessionPatch(freshEntry);
1559-const effectivePatch =
1560-recoveredSessionStartedAt !== undefined &&
1561-freshEntry?.sessionStartedAt === undefined &&
1562-freshEntry?.sessionId === entry?.sessionId
1563- ? { ...patchBuild.patch, sessionStartedAt: recoveredSessionStartedAt }
1564- : patchBuild.patch;
1565-const merged = mergeSessionEntry(freshEntry, effectivePatch);
1566-const sendPolicy =
1567-request.deliver === true
1568- ? resolveSendPolicy({
1569- cfg,
1570-entry: merged,
1571-sessionKey: canonicalKey,
1572-channel: merged?.channel,
1573-chatType: merged?.chatType,
1574-})
1575- : "allow";
1576-if (sendPolicy === "deny") {
1577-deniedBySendPolicy = true;
1552+const persisted = await updateSessionStore(
1553+storePath,
1554+(store) => {
1555+const { primaryKey } = migrateAndPruneGatewaySessionStoreKey({
1556+ cfg,
1557+key: requestedStoreKey,
1558+ store,
1559+});
1560+const freshEntry = store[primaryKey];
1561+patchBuild = buildSessionPatch(freshEntry);
1562+const effectivePatch =
1563+recoveredSessionStartedAt !== undefined &&
1564+freshEntry?.sessionStartedAt === undefined &&
1565+freshEntry?.sessionId === entry?.sessionId
1566+ ? { ...patchBuild.patch, sessionStartedAt: recoveredSessionStartedAt }
1567+ : patchBuild.patch;
1568+const merged = mergeSessionEntry(freshEntry, effectivePatch);
1569+const sendPolicy =
1570+request.deliver === true
1571+ ? resolveSendPolicy({
1572+ cfg,
1573+entry: merged,
1574+sessionKey: canonicalKey,
1575+channel: merged?.channel,
1576+chatType: merged?.chatType,
1577+})
1578+ : "allow";
1579+if (sendPolicy === "deny") {
1580+deniedBySendPolicy = true;
1581+return merged;
1582+}
1583+store[primaryKey] = merged;
15781584return merged;
1579-}
1580-store[primaryKey] = merged;
1581-return merged;
1582-});
1585+},
1586+{ takeCacheOwnership: true },
1587+);
15831588if (persisted) {
15841589sessionEntry = persisted;
15851590resolvedSessionId = sessionEntry.sessionId;
15861591}
1592+skipAgentInitialSessionTouch = touchInteraction;
15871593if (deniedBySendPolicy) {
15881594respond(
15891595false,
@@ -2056,6 +2062,7 @@ export const agentHandlers: GatewayRequestHandlers = {
20562062internalEvents: request.internalEvents,
20572063 inputProvenance,
20582064 sessionEffects,
2065+skipInitialSessionTouch: skipAgentInitialSessionTouch,
20592066 preserveUserFacingSessionModelState,
20602067sourceReplyDeliveryMode: request.sourceReplyDeliveryMode,
20612068disableMessageTool: request.disableMessageTool,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。