This PR implements support for reading the approvalMode setting from the user's config file (`~/.codex/config.json` or `~/.codex/config.yaml`), allowing users to set a persistent default approval mode without needing to specify command-line flags for each session. Changes: - Added approvalMode to the AppConfig type in config.ts - Updated loadConfig() to read the approval mode from the config file - Modified saveConfig() to persist the approval mode setting - Updated CLI logic to respect the config-defined approval mode (while maintaining CLI flag priority) - Added comprehensive tests for approval mode config functionality - Updated README to document the new config option in both YAML and JSON formats - additions to `.gitignore` for other CLI tools Motivation: As a user who regularly works with CLI-tools, I found it odd to have to alias this with the command flags I wanted when `approvalMode` simply wasn't being parsed even though it was an optional prop in `config.ts`. This change allows me (and other users) to set the preference once in the config file, streamlining daily usage while maintaining the ability to override via command-line flags when needed. Testing: I've added a new test case loads and saves approvalMode correctly that verifies: - Reading the approvalMode from the config file works correctly - Saving the approvalMode to the config file works as expected - The value persists through load/save operations All tests related to the implementation are passing.
79 lines
742 B
Plaintext
79 lines
742 B
Plaintext
# deps
|
|
# Node.js dependencies
|
|
node_modules
|
|
.pnpm-store
|
|
.pnpm-debug.log
|
|
|
|
# Keep pnpm-lock.yaml
|
|
!pnpm-lock.yaml
|
|
|
|
# build
|
|
dist/
|
|
build/
|
|
out/
|
|
storybook-static/
|
|
|
|
# ignore README for publishing
|
|
codex-cli/README.md
|
|
|
|
# ignore Nix derivation results
|
|
result
|
|
|
|
# editor
|
|
.vscode/
|
|
.idea/
|
|
.history/
|
|
*.swp
|
|
*~
|
|
|
|
# cli tools
|
|
CLAUDE.md
|
|
.claude/
|
|
|
|
# caches
|
|
.cache/
|
|
.turbo/
|
|
.parcel-cache/
|
|
.eslintcache
|
|
.nyc_output/
|
|
.jest/
|
|
*.tsbuildinfo
|
|
|
|
# logs
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
|
|
# env
|
|
.env*
|
|
!.env.example
|
|
|
|
# package
|
|
*.tgz
|
|
|
|
# ci
|
|
.vercel/
|
|
.netlify/
|
|
|
|
# patches
|
|
apply_patch/
|
|
|
|
# coverage
|
|
coverage/
|
|
|
|
# os
|
|
.DS_Store
|
|
Thumbs.db
|
|
Icon?
|
|
.Spotlight-V100/
|
|
|
|
# Unwanted package managers
|
|
.yarn/
|
|
yarn.lock
|
|
|
|
# release
|
|
package.json-e
|
|
session.ts-e
|
|
CHANGELOG.ignore.md
|