fix(vscode): stop flashing interruption warning on queued follow-up handoff

A prompt sent while a session is running queues behind the active turn,
which breaks out of its loop after the current LLM step drains. That
handoff was recorded with close reason "interrupted", so the webview
rendered the yellow "Turn interrupted." card during the brief idle
window before the queued turn started.

The handoff now closes with a dedicated "superseded" reason instead.
Clients extend their close-reason unions and the webview suppresses the
terminal warning card for superseded turns; memory digests still treat
the cut-short turn as interrupted, and real user interruptions are
unchanged.
This commit is contained in:
marius-kilocode
2026-07-29 12:31:47 +02:00
parent 26a96b3c45
commit 8a47d8b788
11 changed files with 284 additions and 133 deletions
+164 -126
View File
@@ -24496,6 +24496,15 @@
{
"$ref": "#/components/schemas/EventServerInstanceDisposed"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSessionQueueChanged"
},
{
"$ref": "#/components/schemas/EventSessionNetworkAsked"
},
@@ -24523,12 +24532,6 @@
{
"$ref": "#/components/schemas/EventInteractive_terminalDeleted"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSandboxStatusChanged"
},
@@ -24557,10 +24560,10 @@
"$ref": "#/components/schemas/EventKilocodeNotebookCancelled"
},
{
"$ref": "#/components/schemas/EventLspClientDiagnostics"
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
},
{
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
"$ref": "#/components/schemas/EventLspClientDiagnostics"
},
{
"$ref": "#/components/schemas/EventMemoryStatus1"
@@ -24818,10 +24821,10 @@
"$ref": "#/components/schemas/EventProjectUpdated"
},
{
"$ref": "#/components/schemas/EventLspUpdated"
"$ref": "#/components/schemas/EventVcsBranchUpdated"
},
{
"$ref": "#/components/schemas/EventVcsBranchUpdated"
"$ref": "#/components/schemas/EventLspUpdated"
},
{
"$ref": "#/components/schemas/EventWorkspaceReady"
@@ -26838,7 +26841,7 @@
"type": "object",
"properties": {
"start": {
"type": "number",
"type": "integer",
"minimum": 0
}
},
@@ -26914,11 +26917,11 @@
"type": "object",
"properties": {
"start": {
"type": "number",
"type": "integer",
"minimum": 0
},
"end": {
"type": "number",
"type": "integer",
"minimum": 0
},
"elapsed": {
@@ -27686,6 +27689,15 @@
{
"$ref": "#/components/schemas/EventServerInstanceDisposed"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSessionQueueChanged"
},
{
"$ref": "#/components/schemas/EventSessionNetworkAsked"
},
@@ -27713,12 +27725,6 @@
{
"$ref": "#/components/schemas/EventInteractive_terminalDeleted"
},
{
"$ref": "#/components/schemas/EventSessionTurnOpen"
},
{
"$ref": "#/components/schemas/EventSessionTurnClose"
},
{
"$ref": "#/components/schemas/EventSandboxStatusChanged"
},
@@ -27747,10 +27753,10 @@
"$ref": "#/components/schemas/EventKilocodeNotebookCancelled"
},
{
"$ref": "#/components/schemas/EventLspClientDiagnostics"
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
},
{
"$ref": "#/components/schemas/EventKilo-sessionsRemote-status-changed"
"$ref": "#/components/schemas/EventLspClientDiagnostics"
},
{
"$ref": "#/components/schemas/EventMemoryStatus"
@@ -28008,10 +28014,10 @@
"$ref": "#/components/schemas/EventProjectUpdated"
},
{
"$ref": "#/components/schemas/EventLspUpdated"
"$ref": "#/components/schemas/EventVcsBranchUpdated"
},
{
"$ref": "#/components/schemas/EventVcsBranchUpdated"
"$ref": "#/components/schemas/EventLspUpdated"
},
{
"$ref": "#/components/schemas/EventWorkspaceReady"
@@ -35218,6 +35224,96 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnOpen": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.open"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnClose": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.close"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"parentID": {
"type": "string",
"pattern": "^ses"
},
"reason": {
"type": "string",
"enum": ["completed", "error", "interrupted", "superseded"]
}
},
"required": ["sessionID", "reason"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionQueueChanged": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.queue.changed"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"queued": {
"type": "array",
"items": {
"type": "string",
"pattern": "^msg"
}
}
},
"required": ["sessionID", "queued"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionNetworkAsked": {
"type": "object",
"properties": {
@@ -35470,64 +35566,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnOpen": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.open"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSessionTurnClose": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["session.turn.close"]
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string",
"pattern": "^ses"
},
"parentID": {
"type": "string",
"pattern": "^ses"
},
"reason": {
"type": "string",
"enum": ["completed", "error", "interrupted"]
}
},
"required": ["sessionID", "reason"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventSandboxStatusChanged": {
"type": "object",
"properties": {
@@ -35837,33 +35875,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspClientDiagnostics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.client.diagnostics"]
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventKilo-sessionsRemote-status-changed": {
"type": "object",
"properties": {
@@ -35891,6 +35902,33 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspClientDiagnostics": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.client.diagnostics"]
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"],
"additionalProperties": false
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventMemoryStatus": {
"type": "object",
"properties": {
@@ -39854,24 +39892,6 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspUpdated": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.updated"]
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventVcsBranchUpdated": {
"type": "object",
"properties": {
@@ -39895,6 +39915,24 @@
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventLspUpdated": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["lsp.updated"]
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["id", "type", "properties"],
"additionalProperties": false
},
"EventWorkspaceReady": {
"type": "object",
"properties": {