test(app-server): cover thread turn context updates

Document `thread/turnContext/update` more clearly in the protocol and
README, including that it updates the live defaults used by later
thread-scoped operations.

Add a focused app-server regression test that updates a loaded
thread's cwd and verifies `thread/read` reflects the new value.
This commit is contained in:
Felipe Coury
2026-04-07 12:50:15 -03:00
parent 6d7b2c860d
commit bd8ca44a8a
9 changed files with 112 additions and 1 deletions
@@ -3107,6 +3107,7 @@
"type": "object"
},
"ThreadTurnContextUpdateParams": {
"description": "Parameters for `thread/turnContext/update`. Each field is optional; only supplied fields override the thread's defaults for subsequent turns and thread-scoped operations (e.g. shell commands).",
"properties": {
"approvalPolicy": {
"anyOf": [
@@ -14191,6 +14191,7 @@
},
"ThreadTurnContextUpdateParams": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Parameters for `thread/turnContext/update`. Each field is optional; only supplied fields override the thread's defaults for subsequent turns and thread-scoped operations (e.g. shell commands).",
"properties": {
"approvalPolicy": {
"anyOf": [
@@ -12046,6 +12046,7 @@
},
"ThreadTurnContextUpdateParams": {
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Parameters for `thread/turnContext/update`. Each field is optional; only supplied fields override the thread's defaults for subsequent turns and thread-scoped operations (e.g. shell commands).",
"properties": {
"approvalPolicy": {
"anyOf": [
@@ -336,6 +336,7 @@
"type": "object"
}
},
"description": "Parameters for `thread/turnContext/update`. Each field is optional; only supplied fields override the thread's defaults for subsequent turns and thread-scoped operations (e.g. shell commands).",
"properties": {
"approvalPolicy": {
"anyOf": [
@@ -10,6 +10,11 @@ import type { ApprovalsReviewer } from "./ApprovalsReviewer";
import type { AskForApproval } from "./AskForApproval";
import type { SandboxPolicy } from "./SandboxPolicy";
/**
* Parameters for `thread/turnContext/update`. Each field is optional; only
* supplied fields override the thread's defaults for subsequent turns and
* thread-scoped operations (e.g. shell commands).
*/
export type ThreadTurnContextUpdateParams = {threadId: string, /**
* Override the working directory for subsequent turns and thread-scoped
* operations.
@@ -2896,6 +2896,9 @@ pub struct ThreadSetNameResponse {}
)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
/// Parameters for `thread/turnContext/update`. Each field is optional; only
/// supplied fields override the thread's defaults for subsequent turns and
/// thread-scoped operations (e.g. shell commands).
pub struct ThreadTurnContextUpdateParams {
pub thread_id: String,
/// Override the working directory for subsequent turns and thread-scoped