Compare commits

...

1 Commits

Author SHA1 Message Date
won
66860b20aa Add auto-review compatibility aliases 2026-04-22 19:01:23 -07:00
9 changed files with 143 additions and 2 deletions

View File

@@ -4644,6 +4644,30 @@
"title": "Thread/shellCommandRequest",
"type": "object"
},
{
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"enum": [
"thread/approveAutoReviewDeniedAction"
],
"title": "Thread/approveAutoReviewDeniedActionRequestMethod",
"type": "string"
},
"params": {
"$ref": "#/definitions/ThreadApproveGuardianDeniedActionParams"
}
},
"required": [
"id",
"method",
"params"
],
"title": "Thread/approveAutoReviewDeniedActionRequest",
"type": "object"
},
{
"properties": {
"id": {

View File

@@ -448,6 +448,30 @@
"title": "Thread/shellCommandRequest",
"type": "object"
},
{
"properties": {
"id": {
"$ref": "#/definitions/v2/RequestId"
},
"method": {
"enum": [
"thread/approveAutoReviewDeniedAction"
],
"title": "Thread/approveAutoReviewDeniedActionRequestMethod",
"type": "string"
},
"params": {
"$ref": "#/definitions/v2/ThreadApproveGuardianDeniedActionParams"
}
},
"required": [
"id",
"method",
"params"
],
"title": "Thread/approveAutoReviewDeniedActionRequest",
"type": "object"
},
{
"properties": {
"id": {

View File

@@ -1137,6 +1137,30 @@
"title": "Thread/shellCommandRequest",
"type": "object"
},
{
"properties": {
"id": {
"$ref": "#/definitions/RequestId"
},
"method": {
"enum": [
"thread/approveAutoReviewDeniedAction"
],
"title": "Thread/approveAutoReviewDeniedActionRequestMethod",
"type": "string"
},
"params": {
"$ref": "#/definitions/ThreadApproveGuardianDeniedActionParams"
}
},
"required": [
"id",
"method",
"params"
],
"title": "Thread/approveAutoReviewDeniedActionRequest",
"type": "object"
},
{
"properties": {
"id": {

File diff suppressed because one or more lines are too long

View File

@@ -311,6 +311,10 @@ client_request_definitions! {
params: v2::ThreadShellCommandParams,
response: v2::ThreadShellCommandResponse,
},
ThreadApproveAutoReviewDeniedAction => "thread/approveAutoReviewDeniedAction" {
params: v2::ThreadApproveGuardianDeniedActionParams,
response: v2::ThreadApproveGuardianDeniedActionResponse,
},
ThreadApproveGuardianDeniedAction => "thread/approveGuardianDeniedAction" {
params: v2::ThreadApproveGuardianDeniedActionParams,
response: v2::ThreadApproveGuardianDeniedActionResponse,
@@ -1234,6 +1238,48 @@ mod tests {
Ok(())
}
#[test]
fn deserialize_denied_action_accepts_guardian_and_auto_review_methods() -> Result<()> {
let params = v2::ThreadApproveGuardianDeniedActionParams {
thread_id: "thread-1".to_string(),
event: json!({ "id": "event-1" }),
};
let guardian: ClientRequest = serde_json::from_value(json!({
"method": "thread/approveGuardianDeniedAction",
"id": 42,
"params": params.clone(),
}))?;
assert_eq!(
guardian,
ClientRequest::ThreadApproveGuardianDeniedAction {
request_id: RequestId::Integer(42),
params: v2::ThreadApproveGuardianDeniedActionParams {
thread_id: "thread-1".to_string(),
event: json!({ "id": "event-1" }),
},
}
);
let auto_review: ClientRequest = serde_json::from_value(json!({
"method": "thread/approveAutoReviewDeniedAction",
"id": 42,
"params": params,
}))?;
assert_eq!(
auto_review,
ClientRequest::ThreadApproveAutoReviewDeniedAction {
request_id: RequestId::Integer(42),
params: v2::ThreadApproveGuardianDeniedActionParams {
thread_id: "thread-1".to_string(),
event: json!({ "id": "event-1" }),
},
}
);
Ok(())
}
#[test]
fn conversation_id_serializes_as_plain_string() -> Result<()> {
let id = ThreadId::from_string("67e55044-10b1-426f-9247-bb680e5fe0c8")?;

View File

@@ -958,7 +958,8 @@ impl CodexMessageProcessor {
self.thread_shell_command(to_connection_request_id(request_id), params)
.await;
}
ClientRequest::ThreadApproveGuardianDeniedAction { request_id, params } => {
ClientRequest::ThreadApproveAutoReviewDeniedAction { request_id, params }
| ClientRequest::ThreadApproveGuardianDeniedAction { request_id, params } => {
self.thread_approve_guardian_denied_action(
to_connection_request_id(request_id),
params,

View File

@@ -351,6 +351,9 @@
"apps": {
"type": "boolean"
},
"auto_review": {
"type": "boolean"
},
"browser_use": {
"type": "boolean"
},
@@ -2369,6 +2372,9 @@
"apps": {
"type": "boolean"
},
"auto_review": {
"type": "boolean"
},
"browser_use": {
"type": "boolean"
},

View File

@@ -49,6 +49,10 @@ const ALIASES: &[Alias] = &[
legacy_key: "telepathy",
feature: Feature::Chronicle,
},
Alias {
legacy_key: "auto_review",
feature: Feature::GuardianApproval,
},
];
pub fn legacy_feature_keys() -> impl Iterator<Item = &'static str> {

View File

@@ -263,6 +263,18 @@ fn collab_is_legacy_alias_for_multi_agent() {
assert_eq!(feature_for_key("collab"), Some(Feature::Collab));
}
#[test]
fn auto_review_is_legacy_alias_for_guardian_approval() {
assert_eq!(
feature_for_key("guardian_approval"),
Some(Feature::GuardianApproval)
);
assert_eq!(
feature_for_key("auto_review"),
Some(Feature::GuardianApproval)
);
}
#[test]
fn multi_agent_is_stable_and_enabled_by_default() {
assert_eq!(Feature::Collab.stage(), Stage::Stable);