Skip to content

Commit 0b57257

Browse files
fix: use continue:true for multi-turn sessions in sidecar, fix context loss between messages
1 parent 776150f commit 0b57257

2 files changed

Lines changed: 15 additions & 2 deletions

File tree

crates/tauri-app/agent-sidecar/index.mjs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ let currentAbort = null;
5151
// Counter for generating unique approval request IDs.
5252
let approvalCounter = 0;
5353

54+
// Track whether we've completed at least one query (for continue support).
55+
let hasCompletedQuery = false;
56+
let lastSessionId = null;
57+
5458
// ── Stdin reader ─────────────────────────────────────────────────────────────
5559

5660
const rl = createInterface({ input: process.stdin, terminal: false });
@@ -131,9 +135,13 @@ async function handleQuery(cmd) {
131135

132136
if (model) options.model = model;
133137

134-
// Resume support: pass the previous session ID.
135-
if (sessionId) {
138+
// Session continuity:
139+
// - If we have a sessionId from a previous app launch, resume it
140+
// - If we already completed a query in this sidecar process, continue it
141+
if (sessionId && !hasCompletedQuery) {
136142
options.resume = sessionId;
143+
} else if (hasCompletedQuery) {
144+
options.continue = true;
137145
}
138146

139147
// canUseTool callback — sends approval requests to Rust, waits for response
@@ -240,6 +248,8 @@ async function handleQuery(cmd) {
240248
});
241249
}
242250

251+
hasCompletedQuery = true;
252+
lastSessionId = capturedSessionId;
243253
emit({ type: "turn_completed", sessionId: capturedSessionId || "" });
244254
turnEmitted = true;
245255
continue;
@@ -316,6 +326,8 @@ async function handleQuery(cmd) {
316326

317327
// Make sure we always emit turn_completed so the Rust side knows we're done.
318328
if (!turnEmitted) {
329+
hasCompletedQuery = true;
330+
lastSessionId = capturedSessionId;
319331
emit({ type: "turn_completed", sessionId: capturedSessionId || "" });
320332
}
321333
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
This is a permission system test file. Safe to delete.

0 commit comments

Comments
 (0)