mirror of
https://github.com/openai/codex.git
synced 2026-04-25 15:15:15 +00:00
Guardian events were emitted a bit out of order for CommandExecution
items. This would make it hard for the frontend to render a guardian
auto-review, which has this payload:
```
pub struct ItemGuardianApprovalReviewStartedNotification {
pub thread_id: String,
pub turn_id: String,
pub target_item_id: String,
pub review: GuardianApprovalReview,
// FYI this is no longer a json blob
pub action: Option<JsonValue>,
}
```
There is a `target_item_id` the auto-approval review is referring to,
but the actual item had not been emitted yet.
Before this PR:
- `item/autoApprovalReview/started`
- `item/autoApprovalReview/completed`, and if approved...
- `item/started`
- `item/completed`
After this PR:
- `item/started`
- `item/autoApprovalReview/started`
- `item/autoApprovalReview/completed`
- `item/completed`
This lines up much better with existing patterns (i.e. human review in
`Default mode`, where app-server would send a server request to prompt
for user approval after `item/started`), and makes it easier for clients
to render what guardian is actually reviewing.
We do this following a similar pattern as `FileChange` (aka apply patch)
items, where we create a FileChange item and emit `item/started` if we
see the apply patch approval request, before the actual apply patch call
runs.
50 lines
1.8 KiB
Rust
50 lines
1.8 KiB
Rust
mod experimental_api;
|
|
mod export;
|
|
mod jsonrpc_lite;
|
|
mod protocol;
|
|
mod schema_fixtures;
|
|
|
|
pub use codex_git_utils::GitSha;
|
|
pub use experimental_api::*;
|
|
pub use export::GenerateTsOptions;
|
|
pub use export::generate_internal_json_schema;
|
|
pub use export::generate_json;
|
|
pub use export::generate_json_with_experimental;
|
|
pub use export::generate_ts;
|
|
pub use export::generate_ts_with_options;
|
|
pub use export::generate_types;
|
|
pub use jsonrpc_lite::*;
|
|
pub use protocol::common::*;
|
|
pub use protocol::item_builders::*;
|
|
pub use protocol::thread_history::*;
|
|
pub use protocol::v1::ApplyPatchApprovalParams;
|
|
pub use protocol::v1::ApplyPatchApprovalResponse;
|
|
pub use protocol::v1::ClientInfo;
|
|
pub use protocol::v1::ConversationGitInfo;
|
|
pub use protocol::v1::ConversationSummary;
|
|
pub use protocol::v1::ExecCommandApprovalParams;
|
|
pub use protocol::v1::ExecCommandApprovalResponse;
|
|
pub use protocol::v1::GetAuthStatusParams;
|
|
pub use protocol::v1::GetAuthStatusResponse;
|
|
pub use protocol::v1::GetConversationSummaryParams;
|
|
pub use protocol::v1::GetConversationSummaryResponse;
|
|
pub use protocol::v1::GitDiffToRemoteParams;
|
|
pub use protocol::v1::GitDiffToRemoteResponse;
|
|
pub use protocol::v1::InitializeCapabilities;
|
|
pub use protocol::v1::InitializeParams;
|
|
pub use protocol::v1::InitializeResponse;
|
|
pub use protocol::v1::InterruptConversationResponse;
|
|
pub use protocol::v1::LoginApiKeyParams;
|
|
pub use protocol::v1::Profile;
|
|
pub use protocol::v1::SandboxSettings;
|
|
pub use protocol::v1::Tools;
|
|
pub use protocol::v1::UserSavedConfig;
|
|
pub use protocol::v2::*;
|
|
pub use schema_fixtures::SchemaFixtureOptions;
|
|
#[doc(hidden)]
|
|
pub use schema_fixtures::generate_typescript_schema_fixture_subtree_for_tests;
|
|
pub use schema_fixtures::read_schema_fixture_subtree;
|
|
pub use schema_fixtures::read_schema_fixture_tree;
|
|
pub use schema_fixtures::write_schema_fixtures;
|
|
pub use schema_fixtures::write_schema_fixtures_with_options;
|