mirror of
https://github.com/openai/codex.git
synced 2026-04-30 11:21:34 +03:00
Adds the app-server v2 goal API on top of the persisted goal state from PR 1. ## Why Clients need a stable app-server surface for reading and controlling materialized thread goals before the model tools and TUI can use them. Goal changes also need to be observable by app-server clients, including clients that resume an existing thread. ## What changed - Added v2 `thread/goal/get`, `thread/goal/set`, and `thread/goal/clear` RPCs for materialized threads. - Added `thread/goal/updated` and `thread/goal/cleared` notifications so clients can keep local goal state in sync. - Added resume/snapshot wiring so reconnecting clients see the current goal state for a thread. - Added app-server handlers that reconcile persisted rollout state before direct goal mutations. - Updated the app-server README plus generated JSON and TypeScript schema fixtures for the new API surface. ## Verification - Added app-server v2 coverage for goal get/set/clear behavior, notification emission, resume snapshots, and non-local thread-store interactions.
80 lines
1.5 KiB
JSON
Generated
80 lines
1.5 KiB
JSON
Generated
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"definitions": {
|
|
"ThreadGoal": {
|
|
"properties": {
|
|
"createdAt": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"objective": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"$ref": "#/definitions/ThreadGoalStatus"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"timeUsedSeconds": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"tokenBudget": {
|
|
"format": "int64",
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"tokensUsed": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"updatedAt": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"createdAt",
|
|
"objective",
|
|
"status",
|
|
"threadId",
|
|
"timeUsedSeconds",
|
|
"tokensUsed",
|
|
"updatedAt"
|
|
],
|
|
"type": "object"
|
|
},
|
|
"ThreadGoalStatus": {
|
|
"enum": [
|
|
"active",
|
|
"paused",
|
|
"budgetLimited",
|
|
"complete"
|
|
],
|
|
"type": "string"
|
|
}
|
|
},
|
|
"properties": {
|
|
"goal": {
|
|
"$ref": "#/definitions/ThreadGoal"
|
|
},
|
|
"threadId": {
|
|
"type": "string"
|
|
},
|
|
"turnId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"goal",
|
|
"threadId"
|
|
],
|
|
"title": "ThreadGoalUpdatedNotification",
|
|
"type": "object"
|
|
} |