From 4056522773152378a6f04a9d71a5e4cdd816052f Mon Sep 17 00:00:00 2001 From: Kingsword Date: Sat, 29 Aug 2026 09:44:46 +0800 Subject: [PATCH] fix(tui): request guide delivery for active-turn steers --- packages/zcode-tui/src/index.ts | 3 +++ packages/zcode-tui/src/types.ts | 2 ++ test/fixtures/tui-features.ts | 3 +++ 3 files changed, 8 insertions(+) diff --git a/packages/zcode-tui/src/index.ts b/packages/zcode-tui/src/index.ts index 3e4d949..5f830a9 100644 --- a/packages/zcode-tui/src/index.ts +++ b/packages/zcode-tui/src/index.ts @@ -1572,6 +1572,9 @@ class ZCodeTui { const callOptions: PromptCallOptions = { abortSignal: abortController.signal, delivery: steering ? "steer_active_turn" : "start_turn", + // Steers must request guide delivery; the runtime only injects + // guide-classified pending inputs into the active turn. + queueDelivery: steering ? "guide" : undefined, expectedTurnId: steering ? this.activeTurnId : undefined, inputId, pendingInputReservationId: queuedSubmission?.pendingInputReservationId, diff --git a/packages/zcode-tui/src/types.ts b/packages/zcode-tui/src/types.ts index 1562775..9df0206 100644 --- a/packages/zcode-tui/src/types.ts +++ b/packages/zcode-tui/src/types.ts @@ -12,6 +12,8 @@ export interface SlashCommandOption { export interface PromptCallOptions { abortSignal?: AbortSignal; delivery?: "auto" | "start_turn" | "steer_active_turn"; + /** Requested pending-input classification; steers need "guide" to be injected into the active turn. */ + queueDelivery?: "guide" | "queue"; expectedTurnId?: string; inputId?: string; pendingInputReservationId?: string; diff --git a/test/fixtures/tui-features.ts b/test/fixtures/tui-features.ts index aa033fa..c7755cd 100644 --- a/test/fixtures/tui-features.ts +++ b/test/fixtures/tui-features.ts @@ -394,6 +394,9 @@ await runTui({ if (options.delivery !== "steer_active_turn") { throw new Error(`Active-turn input used unexpected delivery mode: ${String(options.delivery)}`); } + if (options.queueDelivery !== "guide") { + throw new Error(`Active steer used unexpected queue delivery: ${String(options.queueDelivery)}`); + } if (promptText === "Edit this rejected steer.") { if (options.expectedTurnId !== "turn_feature") { throw new Error(`Rejected steer used unexpected expected turn: ${String(options.expectedTurnId)}`);