Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
},
"metadata": {
"description": "Codex in Claude Code, routed through claude-switcheroo (henderson-tech fork of openai/codex-plugin-cc).",
"version": "1.0.6-henderson.3"
"version": "1.0.6-henderson.4"
},
"plugins": [
{
"name": "codex",
"description": "Codex review and delegation, billed to the switcheroo account with the most headroom; gpt-6-sol by default.",
"version": "1.0.6-henderson.3",
"description": "Codex review and delegation, billed to the switcheroo account with the most headroom; gpt-6.1-sol by default.",
"version": "1.0.6-henderson.4",
"author": {
"name": "OpenAI"
},
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Use Codex from inside Claude Code for code reviews or to delegate tasks to Codex
> wins. Without switcheroo, or with no switcheroo Codex accounts, it behaves exactly like upstream.
> - **Limit failover:** a task or review that dies on "usage limit" retries once on the next account
> and says which one.
> - **Defaults:** `gpt-6-sol` at `medium` effort, like switcheroo's `cxx`; `--model` and `--effort`
> - **Defaults:** `gpt-6.1-sol` at `medium` effort, the model of switcheroo's `cxx` and `codex run` sidekick; `--model` and `--effort`
> still override.
> - **No model pin** on the `codex-rescue` agent: it inherits your session model.
> - **No orphaned brokers:** a broker the companion gives up on (missed readiness window, stale
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@openai/codex-plugin-cc",
"version": "1.0.6-henderson.3",
"version": "1.0.6-henderson.4",
"private": true,
"type": "module",
"description": "Use Codex from Claude Code to review code or delegate tasks.",
Expand Down
2 changes: 1 addition & 1 deletion plugins/codex/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "codex",
"version": "1.0.6-henderson.3",
"version": "1.0.6-henderson.4",
"description": "Use Codex from Claude Code to review code or delegate tasks.",
"author": {
"name": "OpenAI"
Expand Down
2 changes: 1 addition & 1 deletion plugins/codex/agents/codex-rescue.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Forwarding rules:
- Do not inspect the repository, read files, grep, monitor progress, poll status, fetch results, cancel jobs, summarize output, or do any follow-up work of your own.
- Do not call `review`, `adversarial-review`, `status`, `result`, or `cancel`. This subagent only forwards to `task`.
- Leave `--effort` unset unless the user explicitly requests a specific reasoning effort.
- Leave model unset by default (this fork then runs gpt-6-sol at medium effort). Only add `--model` when the user explicitly asks for a specific model.
- Leave model unset by default (this fork then runs gpt-6.1-sol at medium effort). Only add `--model` when the user explicitly asks for a specific model.
- If the user asks for `spark`, map that to `--model gpt-5.3-codex-spark`.
- If the user asks for a concrete model name such as `gpt-5.4-mini`, pass it through with `--model`.
- Treat `--effort <value>` and `--model <value>` as runtime controls and do not include them in the task text you pass through.
Expand Down
4 changes: 2 additions & 2 deletions plugins/codex/scripts/codex-companion.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,8 @@ const DEFAULT_STATUS_WAIT_TIMEOUT_MS = 240000;
const DEFAULT_STATUS_POLL_INTERVAL_MS = 2000;
const VALID_REASONING_EFFORTS = new Set(["none", "minimal", "low", "medium", "high", "xhigh"]);
const MODEL_ALIASES = new Map([["spark", "gpt-5.3-codex-spark"]]);
// henderson fork: the same pins as switcheroo's `cxx`; --model / --effort still win.
const DEFAULT_MODEL = "gpt-6-sol";
// henderson fork: switcheroo's sidekick model (`cxx`, `codex run`) at medium; --model / --effort still win.
const DEFAULT_MODEL = "gpt-6.1-sol";
const DEFAULT_EFFORT = "medium";
// Subcommands that start Codex — they bill an account, so they are routed.
const ROUTED_SUBCOMMANDS = new Set(["setup", "review", "adversarial-review", "task", "task-worker", "transfer"]);
Expand Down
5 changes: 5 additions & 0 deletions tests/helpers.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ import { spawnSync } from "node:child_process";
// makes those brokers exit shortly after the suite instead of living forever.
process.env.CODEX_COMPANION_BROKER_IDLE_MS ??= "30000";

// A suite run from inside Claude Code inherits the host session's plugin env,
// which re-roots state and filters jobs by that session; the tests assume none.
delete process.env.CLAUDE_PLUGIN_DATA;
delete process.env.CODEX_COMPANION_SESSION_ID;

export function makeTempDir(prefix = "codex-plugin-test-") {
return fs.mkdtempSync(path.join(os.tmpdir(), prefix));
}
Expand Down
Loading