unified-exec: retain PathUri in command events (#28780)

## Why

App-server must report command events containing foreign-platform paths
without changing existing client or rollout path-string formats.

## What changed

- retain `PathUri` through exec command begin/end events
- convert cwd values to `LegacyAppPathString` at the app-server
compatibility boundary
- drop command actions with foreign paths and log them
- serialize rollout-trace cwd values using their inferred native path
representation
- restore Wine coverage for retained Windows cwd values and successful
completion
This commit is contained in:
Adam Perry @ OpenAI
2026-06-18 05:00:04 +00:00
committed by GitHub
parent 285eff6c3e
commit 3931bc2bde
56 changed files with 566 additions and 125 deletions
@@ -547,7 +547,7 @@
"cwd": {
"anyOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
},
{
"type": "null"
@@ -3972,7 +3972,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
+1 -1
View File
@@ -371,7 +371,7 @@
"cwd": {
"anyOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
},
{
"type": "null"
@@ -2378,7 +2378,7 @@
"cwd": {
"anyOf": [
{
"$ref": "#/definitions/v2/AbsolutePathBuf"
"$ref": "#/definitions/v2/LegacyAppPathString"
},
{
"type": "null"
@@ -17392,7 +17392,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/v2/AbsolutePathBuf"
"$ref": "#/definitions/v2/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -15192,7 +15192,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -294,6 +294,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -687,7 +690,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -294,6 +294,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -687,7 +690,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -431,6 +431,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -831,7 +834,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -536,6 +536,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1323,7 +1326,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -536,6 +536,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1323,7 +1326,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -536,6 +536,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1323,7 +1326,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -457,6 +457,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -1138,7 +1141,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -431,6 +431,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -831,7 +834,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -431,6 +431,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -831,7 +834,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -431,6 +431,9 @@
],
"type": "string"
},
"LegacyAppPathString": {
"type": "string"
},
"McpToolCallError": {
"properties": {
"message": {
@@ -831,7 +834,7 @@
"cwd": {
"allOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
"$ref": "#/definitions/LegacyAppPathString"
}
],
"description": "The command's working directory."
@@ -1,7 +1,7 @@
// GENERATED CODE! DO NOT MODIFY BY HAND!
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AbsolutePathBuf } from "../AbsolutePathBuf";
import type { LegacyAppPathString } from "../LegacyAppPathString";
import type { CommandAction } from "./CommandAction";
import type { ExecPolicyAmendment } from "./ExecPolicyAmendment";
import type { NetworkApprovalContext } from "./NetworkApprovalContext";
@@ -34,7 +34,7 @@ networkApprovalContext?: NetworkApprovalContext | null, /**
command?: string | null, /**
* The command's working directory.
*/
cwd?: AbsolutePathBuf | null, /**
cwd?: LegacyAppPathString | null, /**
* Best-effort parsed command actions for friendly display.
*/
commandActions?: Array<CommandAction> | null, /**
@@ -2,6 +2,7 @@
// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { AbsolutePathBuf } from "../AbsolutePathBuf";
import type { LegacyAppPathString } from "../LegacyAppPathString";
import type { MessagePhase } from "../MessagePhase";
import type { ReasoningEffort } from "../ReasoningEffort";
import type { JsonValue } from "../serde_json/JsonValue";
@@ -32,7 +33,7 @@ command: string,
/**
* The command's working directory.
*/
cwd: AbsolutePathBuf,
cwd: LegacyAppPathString,
/**
* Identifier for the underlying PTY process (when available).
*/