fix(chat): pin existing-session sends to captured target (#2424)

* fix(chat): pin sends to captured session

* fix(chat): handle runtime cancellation consistently
This commit is contained in:
Wsyjq
2026-08-07 00:46:21 +03:00
committed by GitHub
parent 834d2edb87
commit 70226149ce
10 changed files with 222 additions and 31 deletions
@@ -272,7 +272,11 @@ describe('buildQueuedAutoSendPayload', () => {
]);
expect(payload).not.toBeNull();
await sendQueuedAutoSendPayload('session-original', '/repo', payload!, {
await sendQueuedAutoSendPayload({
runtimeKey: 'runtime-original',
sessionId: 'session-original',
directory: '/repo',
}, payload!, {
providerID: 'provider-1',
modelID: 'model-1',
agent: 'agent-1',
@@ -290,7 +294,13 @@ describe('buildQueuedAutoSendPayload', () => {
undefined,
'variant-1',
'normal',
{ sessionId: 'session-original', directory: '/repo' },
{
target: {
runtimeKey: 'runtime-original',
sessionId: 'session-original',
directory: '/repo',
},
},
]);
});
});
@@ -103,8 +103,7 @@ type ResolvedQueuedSendConfig = {
};
export const sendQueuedAutoSendPayload = (
sessionId: string,
directory: string,
target: MessageQueueTarget,
payload: QueuedAutoSendPayload,
resolved: ResolvedQueuedSendConfig,
) => {
@@ -118,7 +117,7 @@ export const sendQueuedAutoSendPayload = (
undefined,
resolved.variant,
'normal',
{ sessionId, directory },
{ target },
);
};
@@ -295,7 +294,7 @@ export function useQueuedMessageAutoSend(enabledOrOptions?: boolean | { enabled?
useMessageQueueStore.getState().markSending(target, payload.queuedMessageId);
try {
await sendQueuedAutoSendPayload(sessionId, target.directory, payload, {
await sendQueuedAutoSendPayload(target, payload, {
providerID: resolved.providerID,
modelID: resolved.modelID,
agent: resolved.agent,