Codex OAuth is a model-provider integration, not a toolkit. Remove it
from ConfigInfo.configs so it no longer appears in the /api/config/info
response that drives the MCP & Tools UI. Also remove Codex-specific
install detection and uninstall handling from useIntegrationManagement
and IntegrationList.
- Save CODEX_OAUTH_TOKEN marker config after OAuth to track install state
- Check marker config instead of OPENAI_API_KEY for install detection
- Avoid mutating input dict in CodexOAuthManager.save_token()
- Add CODEX_OAUTH_TOKEN to Codex env_vars whitelist in server config
- Prioritize named integration descriptions over env_vars fallback
Address review feedback: Codex OAuth obtains an OpenAI API key for model
access, not agent tools. After successful OAuth, the key is now saved via
the Provider API (/api/provider) so it integrates with the model provider
configuration system.
Changes:
- Backend: return access_token in Codex install response for provider storage
- Frontend: replace /api/configs storage with /api/provider for Codex
- Server: mark CODEX ConfigInfo entry as type=provider with empty env_vars
- i18n: add missing codex translation keys, remove verbose t() fallback pattern
- Fix stray merge conflict marker in ToolSelect.tsx
- Remove debug console.log statements from MCP.tsx
- Fix "Recieved" → "Received" in chatStore.ts
- Fix "finshedTask" → "finishedTask" variable name in chatStore.ts
- Fix "untill" → "until" in test comments
- Fix "manger" → "manager" in permission descriptions and translations
- Add detailed structured logging in Workforce initialization and task execution
- Include task metadata, API task IDs, and execution context in log entries
- Enhance error logging with better context and exception info
- Standardize log format across workforce, health controller, and other components
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Resolved conflicts in:
- server/app/controller/chat/history_controller.py: Combined status tracking logic from both branches, including failed task counting from main
- src/components/GroupedHistoryView/index.tsx: Kept all imports and features from project-history-ui branch
- src/pages/Dashboard/Project.tsx: Kept the new GroupedHistoryView implementation from project-history-ui branch
- Removed conflicted __pycache__ files (binary conflicts)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>