The buildFetch wrapper now intercepts requests to /v1/messages that
contain the cch=00000 placeholder, computes xxHash64 over the serialized
body, and replaces the placeholder with the 5-char hex digest before
sending. This replicates the request signing that was previously done
in Bun's native HTTP stack.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Remove the NATIVE_CLIENT_ATTESTATION feature gate so the cch placeholder
is always present. The hash computation is now handled in JS-land via
the fetch wrapper rather than Bun's native HTTP stack.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements the cch request signing algorithm described in the
reverse-engineering article. Uses xxhash-wasm for xxHash64 computation
with the known seed constant.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <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