The Codex PR introduced a second isCodexSubscriber() definition that
silently overwrote the first. The replacement only checked for token
existence, ignoring the active provider — so once a user authenticated
with Codex, all requests were permanently routed to the Codex endpoint
regardless of model selection.
Merged both functions into one that requires the provider to be
explicitly set to 'openai' before returning true.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restructured the README to match top-tier open source project standards:
- Added badge row, centered header, and table of contents
- Added comprehensive Model Providers section covering all 5 supported
providers (Anthropic, OpenAI Codex, AWS Bedrock, Vertex AI, Foundry)
with auth methods, model tables, and env vars
- Reorganized experimental features into categorized tables
- Added environment variables reference
- Added contributing section
- Improved overall structure and readability
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The default model string was incorrectly set to gpt-5.2-codex while the
description already advertised GPT-5.3 Codex. Also removed a duplicate
dead-code isCodexSubscriber() block that was unreachable.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add openaiOauthTokens field to GlobalConfig for storing OAuth tokens
- Update isCodexSubscriber to check both env vars and OAuth token state
- Ensure UI components update automatically after OpenAI OAuth without restart
- Fix model menu and header to reflect Codex subscription status dynamically
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add OpenAI as new API provider with support for gpt-5.4, gpt-5.3-codex, gpt-5.4-mini models
- Extend model configuration system to include OpenAI provider
- Add isCodexSubscriber function for OpenAI authentication detection
- Update model options and descriptions for Codex models
- Create codex-fetch-adapter for OpenAI API integration
- Add OpenAI OAuth configuration and authentication URLs
- Update default model selection logic for Codex users
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
curl | bash installer that checks OS, git, bun, clones, builds with
all experimental features, and symlinks as `free-code` on PATH.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bake CCR_FORCE_BUNDLE=true into the build defines so the bundle-seed
path is always active. This skips the GitHub remote + app installation
checks that fail on non-Anthropic repos.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the research-archive README with a proper project README
covering what free-code is, build instructions, feature flags,
and project structure.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
These components were referenced in REPL.tsx but never defined, causing
a runtime crash when ultraplan tried to launch. Added:
- UltraplanLaunchDialog: pre-launch confirmation with terms/cancel
- UltraplanChoiceDialog: post-plan approval with execute-here/dismiss
- Conditional requires in REPL.tsx gated on feature('ULTRAPLAN')
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ultraplan was blocked by two gates that restricted it to ant-only builds:
1. It was in INTERNAL_ONLY_COMMANDS (only included when USER_TYPE=ant)
2. Its own isEnabled checked process.env.USER_TYPE === 'ant'
Move it to the main COMMANDS array and remove the ant-only isEnabled gate.
The feature('ULTRAPLAN') flag already controls whether the code is loaded.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Squash the current repository state back into one baseline commit while
preserving the README reframing and repository contents.
Constraint: User explicitly requested a single squashed commit with subject "asdf"
Confidence: high
Scope-risk: broad
Reversibility: clean
Directive: This commit intentionally rewrites published history; coordinate before future force-pushes
Tested: git status clean; local history rewritten to one commit; force-pushed main to origin and instructkr
Not-tested: Fresh clone verification after push