Allow permission profiles to extend multiple profiles

Open
#36,337 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
rust
Domain
authorization

Research direction

Start by reviewing the single-parent inheritance introduced in #22270 and its runtime application in #23705. Define merge order, conflict handling, recursive inheritance, cycle detection, and duplicate-parent behavior, then confirm that both scalar and array extends syntax work as specified.

Written by the indexing model from the issue text.

Description

app config enhancement
What variant of Codex are you using?

app

What feature would you like to see?
Problem

Permission profiles currently support only one parent:

extends = "profile-a"

This limits reuse when a profile needs permissions from several independent profiles. Users must duplicate rules or create artificial inheritance chains.

Proposal

Allow extends to accept an array:

extends = ["profile-a", "profile-b"]

The existing scalar syntax should remain supported.

The implementation should define:

  • merge order and conflict handling;
  • recursive inheritance;
  • cycle detection; and
  • duplicate-parent behavior.

An alternative would be a separate composition field such as:

includes = ["profile-a", "profile-b"]
Related work
  • #22270 introduced single-parent profile inheritance.
  • #23705 applied inherited profiles at runtime.
  • #13496 demonstrates additive permission composition internally for skills.

This would make permission profiles more modular and avoid maintaining separate profiles for every combination of permissions.

Additional information

No response

Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.