Skip to content

feat(engine): render the codex CODEX_HOME config per run - #6

Merged
charlesgreen merged 1 commit into
mainfrom
feat/codex-config
Jul 30, 2026
Merged

charlesgreen merged 1 commit into
mainfrom
feat/codex-config

Conversation

@charlesgreen

Copy link
Copy Markdown
Contributor

Next codex-adapter increment: generate the CODEX_HOME config rather than hand-write it.

WriteConfig(codexHome, ProviderConfig) renders config.toml from non-secret settings (model, base URL, provider name, wire API) and references the API key only by the name of the env var that holds it. This is the "config rendered per job" design in docs/setup.md: non-secret values in the file, the key injected as an env var at runtime, the whole CODEX_HOME discarded when the job ends.

Hermetic tests assert the rendered fields and defaults, required-field validation, and — importantly — that no key value is ever written to the file.

Next: per-role prompt assembly, --json token/cost capture, --output-schema verdicts, and wiring the adapter into the loop.

No secrets or private material in the diff.

WriteConfig renders a codex config.toml into a CODEX_HOME from non-secret
provider settings (model, base URL, provider name, wire API), referencing the
API key only by the name of the environment variable that holds it. This is how
the Actions runtime produces a config per job (docs/setup.md): the values are
non-secret, the key never touches the file, and the whole CODEX_HOME is
discarded when the job ends.

Hermetic tests assert the rendered fields, the applied defaults, required-field
validation, and that no key value is ever written.
@charlesgreen
charlesgreen merged commit 4416760 into main Jul 30, 2026
1 check passed
@charlesgreen
charlesgreen deleted the feat/codex-config branch July 30, 2026 01:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant