Add per-account approval settings for apps (#42047)

## What changed

- Add `apps.<app_id>.links.<link_id>` configuration for overriding
  `approvals_reviewer` and `default_tools_approval_mode` per connected account.
- Expose link settings through the app-server protocol and generated JSON and
  TypeScript schemas.

## Testing

- Extend `config/read` coverage for populated, empty, and absent `links`
  sections.

GitOrigin-RevId: 43004d2722439060fdadc5e5cd9ed3108774ecaf
This commit is contained in:
Alex Zamoshchin authored and copyberry committed 2026-09-01 13:07:56 +00:00
1 parent 90ae0c4ef9
commit 0ec375eb70
15 files changed
+316 -14

No files matched your search

+38
View File
@@ -147,6 +147,14 @@
"description": "When `false`, Codex does not surface this app.",
"type": "boolean"
},
"links": {
"allOf": [
{
"$ref": "#/definitions/AppLinksConfig"
}
],
"description": "Per-account approval settings keyed by link ID."
},
"open_world_enabled": {
"description": "Whether tools with `open_world_hint = true` are allowed for this app.",
"type": "boolean"
@@ -162,6 +170,36 @@
},
"type": "object"
},
"AppLinkConfig": {
"additionalProperties": false,
"description": "Approval settings for a connected account within an app.",
"properties": {
"approvals_reviewer": {
"allOf": [
{
"$ref": "#/definitions/ApprovalsReviewer"
}
],
"description": "Reviewer for approval prompts from this account, overriding the app default."
},
"default_tools_approval_mode": {
"allOf": [
{
"$ref": "#/definitions/AppToolApproval"
}
],
"description": "Approval mode for this account unless a tool override exists."
}
},
"type": "object"
},
"AppLinksConfig": {
"additionalProperties": {
"$ref": "#/definitions/AppLinkConfig"
},
"description": "Account settings for a single app.",
"type": "object"
},
"AppToolApproval": {
"enum": [
"auto",