mirror of
https://github.com/openai/codex.git
synced 2026-11-13 14:46:14 +00:00
Add experimental thread queue APIs to app server (#38456)
## What changed - Add experimental `thread/queue/add`, `list`, `update`, `delete`, `reorder`, and `start` requests for persistent queued user submissions. - Automatically dispatch queued submissions in FIFO order after completed or failed turns, while leaving the queue paused after interruption. - Emit `thread/queue/changed` notifications and expose paginated queue contents with stable submission and client message IDs. - Export the new protocol types through the generated JSON Schema and TypeScript bindings. ## Testing - Add app-server integration coverage for capability gating, CRUD, pagination, capacity limits, notifications, automatic dispatch, cold-thread resume, interruption, and explicit queue starts. GitOrigin-RevId: 89caf5577192199bda77cf6c372a59d26cdd910e
This commit is contained in:
1 parent
4d9f3021c8
commit
9341b38310
35 files changed
+1952
-105
No files matched your search
@@ -108,6 +108,7 @@ fn server_notification_requires_delivery(notification: &ServerNotification) -> b
|
||||
matches!(
|
||||
notification,
|
||||
ServerNotification::TurnCompleted(_)
|
||||
| ServerNotification::ThreadQueueChanged(_)
|
||||
| ServerNotification::ThreadSettingsUpdated(_)
|
||||
| ServerNotification::ExternalAgentConfigImportCompleted(_)
|
||||
)
|
||||
@@ -780,6 +781,7 @@ mod tests {
|
||||
use codex_app_server_protocol::ConfigRequirementsReadResponse;
|
||||
use codex_app_server_protocol::ExternalAgentConfigImportCompletedNotification;
|
||||
use codex_app_server_protocol::SessionSource as ApiSessionSource;
|
||||
use codex_app_server_protocol::ThreadQueueChangedNotification;
|
||||
use codex_app_server_protocol::ThreadStartParams;
|
||||
use codex_app_server_protocol::ThreadStartResponse;
|
||||
use codex_app_server_protocol::Turn;
|
||||
@@ -996,6 +998,11 @@ mod tests {
|
||||
},
|
||||
})
|
||||
));
|
||||
assert!(server_notification_requires_delivery(
|
||||
&ServerNotification::ThreadQueueChanged(ThreadQueueChangedNotification {
|
||||
thread_id: "thread-1".to_string(),
|
||||
})
|
||||
));
|
||||
assert!(server_notification_requires_delivery(
|
||||
&ServerNotification::ExternalAgentConfigImportCompleted(
|
||||
ExternalAgentConfigImportCompletedNotification {
|
||||
|
||||
Reference in new issue
Block a user