From 901267bf9bdcae0dab1e4fcf4d834d691f673da6 Mon Sep 17 00:00:00 2001 From: Cathryn Lavery Date: Thu, 9 Jul 2026 15:26:09 -0700 Subject: [PATCH 1/7] codex: refresh model docs to GPT-5.6 family, add max reasoning level Keeps the no-hardcode default (auto-frontier). Updates the illustrative model names in the Model & Reasoning section to the current GPT-5.6 family (sol/terra/luna, bare gpt-5.6 -> sol) and documents the new `max` reasoning-effort level above xhigh. --- codex/SKILL.md | 9 ++++++--- codex/SKILL.md.tmpl | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/codex/SKILL.md b/codex/SKILL.md index 33228ff9b..fc7fc307b 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -1537,7 +1537,8 @@ The reason must engage with a specific Codex insight and compare against an alte **Model:** No model is hardcoded — codex uses whatever its current default is (the frontier agentic coding model). This means as OpenAI ships newer models, /codex automatically -uses them. If the user wants a specific model, pass `-m` through to codex. +uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`, +where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `-m` through to codex. **Reasoning effort (per-mode defaults):** - **Review (2A):** `high` — bounded diff input, needs thoroughness but not max tokens @@ -1547,12 +1548,14 @@ uses them. If the user wants a specific model, pass `-m` through to codex. `xhigh` uses ~23x more tokens than `high` and causes 50+ minute hangs on large context tasks (OpenAI issues #8545, #8402, #6931). Users can override with `--xhigh` flag (e.g., `/codex review --xhigh`) when they want maximum reasoning and are willing to wait. +The GPT-5.6 family adds a `max` level above `xhigh` — even more token-hungry, so gstack +wires no flag for it; pass `-c model_reasoning_effort=max` manually if you truly need it. **Web search:** All codex commands use `--enable web_search_cached` so Codex can look up docs and APIs during review. This is OpenAI's cached index — fast, no extra cost. -If the user specifies a model (e.g., `/codex review -m gpt-5.1-codex-max` -or `/codex challenge -m gpt-5.2`), pass the `-m` flag through to codex. +If the user specifies a model (e.g., `/codex review -m gpt-5.6-sol` +or `/codex challenge -m gpt-5.6-luna`), pass the `-m` flag through to codex. --- diff --git a/codex/SKILL.md.tmpl b/codex/SKILL.md.tmpl index 333de7d8d..c6567be13 100644 --- a/codex/SKILL.md.tmpl +++ b/codex/SKILL.md.tmpl @@ -606,7 +606,8 @@ The reason must engage with a specific Codex insight and compare against an alte **Model:** No model is hardcoded — codex uses whatever its current default is (the frontier agentic coding model). This means as OpenAI ships newer models, /codex automatically -uses them. If the user wants a specific model, pass `-m` through to codex. +uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`, +where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `-m` through to codex. **Reasoning effort (per-mode defaults):** - **Review (2A):** `high` — bounded diff input, needs thoroughness but not max tokens @@ -616,12 +617,14 @@ uses them. If the user wants a specific model, pass `-m` through to codex. `xhigh` uses ~23x more tokens than `high` and causes 50+ minute hangs on large context tasks (OpenAI issues #8545, #8402, #6931). Users can override with `--xhigh` flag (e.g., `/codex review --xhigh`) when they want maximum reasoning and are willing to wait. +The GPT-5.6 family adds a `max` level above `xhigh` — even more token-hungry, so gstack +wires no flag for it; pass `-c model_reasoning_effort=max` manually if you truly need it. **Web search:** All codex commands use `--enable web_search_cached` so Codex can look up docs and APIs during review. This is OpenAI's cached index — fast, no extra cost. -If the user specifies a model (e.g., `/codex review -m gpt-5.1-codex-max` -or `/codex challenge -m gpt-5.2`), pass the `-m` flag through to codex. +If the user specifies a model (e.g., `/codex review -m gpt-5.6-sol` +or `/codex challenge -m gpt-5.6-luna`), pass the `-m` flag through to codex. --- From 03a32574dd8fa15268ed7c9bb758d0f7b5fccd44 Mon Sep 17 00:00:00 2001 From: Cathryn Lavery Date: Thu, 9 Jul 2026 15:37:56 -0700 Subject: [PATCH 2/7] =?UTF-8?q?chore(release):=20v1.59.1.0=20=E2=80=94=20c?= =?UTF-8?q?odex=20GPT-5.6=20docs=20refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ VERSION | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fe889ac0..e4bd604bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [1.59.1.0] - 2026-07-09 + +## **`/codex` docs now point at the GPT-5.6 family and name the new `max` reasoning level.** +## **No behavior change: /codex still auto-uses whatever Codex's frontier default is.** + +The `/codex` skill never hardcodes a model on purpose — it rides whatever Codex ships as its current frontier default, so it picks up new models the day they land. This release refreshes the skill's documentation to match the July 2026 lineup: the illustrative `-m` examples and the "Model & Reasoning" section now reference the GPT-5.6 family (`sol` > `terra` > `luna`, with bare `gpt-5.6` aliasing to `sol`) instead of the retired `gpt-5.1-codex-max` / `gpt-5.2` names, and the reasoning-effort docs now cover the new `max` level that 5.6 adds above `xhigh`. Defaults, flags, and the `--xhigh` override are unchanged. + +### The GPT-5.6 numbers that matter + +Source: OpenAI's GPT-5.6 launch materials and the OpenRouter API listing (July 2026). These describe the family `/codex` now documents; they are not a gstack benchmark. + +| Model | Context | Price /1M (in/out) | Role | +|-------|---------|--------------------|------| +| `gpt-5.6-sol` | 1.05M (128k out) | $5 / $30 | Flagship; bare `gpt-5.6` aliases here | +| `gpt-5.6-terra` | 1.05M (128k out) | $2.50 / $15 | Balanced everyday model | +| `gpt-5.6-luna` | 1.05M (128k out) | $1 / $6 | Fast and affordable | + +Reasoning-effort levels are now `none`, `low`, `medium`, `high`, `xhigh`, `max`. gstack still defaults Review/Challenge to `high` and Consult to `medium`, and wires no flag for `max` (pass `-c model_reasoning_effort=max` by hand if you truly need it). + +### What this means for you + +Nothing changes in how `/codex` runs — it was already using 5.6 the moment it became Codex's default. The docs just stop pointing at dead model names, so when you reach for `-m` you see the models that actually exist today. + +### Itemized changes + +#### Changed + +- `codex/SKILL.md` (+ template): Model & Reasoning section names the GPT-5.6 family as the current frontier; `-m` examples updated from `gpt-5.1-codex-max` / `gpt-5.2` to `gpt-5.6-sol` / `gpt-5.6-luna`; documented the new `max` reasoning-effort level above `xhigh`. No change to the no-hardcode default or the per-mode reasoning defaults. + ## [1.58.5.0] - 2026-06-21 ## **A fresh install now lands on a concrete first move, not a dead end.** diff --git a/VERSION b/VERSION index 2153ce66b..504ad96af 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.58.5.0 +1.59.1.0 From cc53b25fab7257c62072be8794d97613f4da6143 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 9 Jul 2026 18:35:19 -0700 Subject: [PATCH 4/7] chore: sync package.json version to 1.59.1.0 The branch bumped VERSION without package.json; test/gen-skill-docs.test.ts:256 asserts they match, so bun test failed on the branch as submitted. Co-Authored-By: Claude Fable 5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4727042e5..db9f7f4a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gstack", - "version": "1.58.5.0", + "version": "1.59.1.0", "description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.", "license": "MIT", "type": "module", From 74a1057540c0a0997a4d3032251e203c9a73a579 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 9 Jul 2026 18:35:20 -0700 Subject: [PATCH 5/7] fix(codex): usable-today caveats for max reasoning level and bare gpt-5.6 alias Live probes against the OpenAI API (2026-07-09): - -c model_reasoning_effort=max works only on codex CLI >= 0.144 AND an explicit GPT-5.6 model (-m gpt-5.6-sol). Installed 0.136 rejects the config value ('unknown variant max'); non-5.6 default models return API 400. - Bare '-m gpt-5.6' is rejected for Codex with ChatGPT sign-in even though the API-level alias to gpt-5.6-sol is real (OpenAI API changelog 2026-07-09). - An 'ultra' tier exists above max on some surfaces (ChatGPT model picker, codex-rs ReasoningEffort enum). Template + regenerated SKILL.md in one commit (check-freshness bisect invariant). Co-Authored-By: Claude Fable 5 --- codex/SKILL.md | 12 ++++++++---- codex/SKILL.md.tmpl | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/codex/SKILL.md b/codex/SKILL.md index fc7fc307b..62c131f53 100644 --- a/codex/SKILL.md +++ b/codex/SKILL.md @@ -1537,8 +1537,9 @@ The reason must engage with a specific Codex insight and compare against an alte **Model:** No model is hardcoded — codex uses whatever its current default is (the frontier agentic coding model). This means as OpenAI ships newer models, /codex automatically -uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`, -where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `-m` through to codex. +uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`; +the bare `gpt-5.6` API alias routes to `sol`, but Codex with ChatGPT sign-in rejects the bare +id — pass the full `gpt-5.6-sol`). If the user wants a specific model, pass `-m` through to codex. **Reasoning effort (per-mode defaults):** - **Review (2A):** `high` — bounded diff input, needs thoroughness but not max tokens @@ -1548,8 +1549,11 @@ where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `xhigh` uses ~23x more tokens than `high` and causes 50+ minute hangs on large context tasks (OpenAI issues #8545, #8402, #6931). Users can override with `--xhigh` flag (e.g., `/codex review --xhigh`) when they want maximum reasoning and are willing to wait. -The GPT-5.6 family adds a `max` level above `xhigh` — even more token-hungry, so gstack -wires no flag for it; pass `-c model_reasoning_effort=max` manually if you truly need it. +The GPT-5.6 family adds a `max` level above `xhigh` (and an `ultra` above that on some +surfaces) — OpenAI positions both as trading latency and cost for depth, so gstack wires +no flag for them. If you truly need it: codex CLI >= 0.144 with an explicit GPT-5.6 model +(e.g. `-m gpt-5.6-sol -c model_reasoning_effort=max`) — older CLIs reject the value and +non-5.6 models return a 400. **Web search:** All codex commands use `--enable web_search_cached` so Codex can look up docs and APIs during review. This is OpenAI's cached index — fast, no extra cost. diff --git a/codex/SKILL.md.tmpl b/codex/SKILL.md.tmpl index c6567be13..8413d0e9c 100644 --- a/codex/SKILL.md.tmpl +++ b/codex/SKILL.md.tmpl @@ -606,8 +606,9 @@ The reason must engage with a specific Codex insight and compare against an alte **Model:** No model is hardcoded — codex uses whatever its current default is (the frontier agentic coding model). This means as OpenAI ships newer models, /codex automatically -uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`, -where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `-m` through to codex. +uses them. As of July 2026 that frontier is the GPT-5.6 family (ladder: `sol` > `terra` > `luna`; +the bare `gpt-5.6` API alias routes to `sol`, but Codex with ChatGPT sign-in rejects the bare +id — pass the full `gpt-5.6-sol`). If the user wants a specific model, pass `-m` through to codex. **Reasoning effort (per-mode defaults):** - **Review (2A):** `high` — bounded diff input, needs thoroughness but not max tokens @@ -617,8 +618,11 @@ where bare `gpt-5.6` aliases to `sol`). If the user wants a specific model, pass `xhigh` uses ~23x more tokens than `high` and causes 50+ minute hangs on large context tasks (OpenAI issues #8545, #8402, #6931). Users can override with `--xhigh` flag (e.g., `/codex review --xhigh`) when they want maximum reasoning and are willing to wait. -The GPT-5.6 family adds a `max` level above `xhigh` — even more token-hungry, so gstack -wires no flag for it; pass `-c model_reasoning_effort=max` manually if you truly need it. +The GPT-5.6 family adds a `max` level above `xhigh` (and an `ultra` above that on some +surfaces) — OpenAI positions both as trading latency and cost for depth, so gstack wires +no flag for them. If you truly need it: codex CLI >= 0.144 with an explicit GPT-5.6 model +(e.g. `-m gpt-5.6-sol -c model_reasoning_effort=max`) — older CLIs reject the value and +non-5.6 models return a 400. **Web search:** All codex commands use `--enable web_search_cached` so Codex can look up docs and APIs during review. This is OpenAI's cached index — fast, no extra cost. From a31f8652d39c2e22bf3cb5394923f27558d48c3b Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 9 Jul 2026 18:35:20 -0700 Subject: [PATCH 6/7] docs(changelog): model-status accuracy, max-level caveats, contributor credit, voice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gpt-5.2 is deprecated but still selectable (survived the 2026-04-14 Codex retirement wave; no API shutdown for the base model) — only gpt-5.1-codex-max is retired (API shutdown 2026-07-23). Entry no longer calls both 'retired'. - max escape hatch now carries the codex >= 0.144 + explicit-5.6-model caveats; notes the ultra tier above max. - Adds 'Contributed by @cathrynlavery' per repo convention. - Release-summary prose aligned with voice rules (no em dashes). Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4bd604bc..43970ada3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ## **`/codex` docs now point at the GPT-5.6 family and name the new `max` reasoning level.** ## **No behavior change: /codex still auto-uses whatever Codex's frontier default is.** -The `/codex` skill never hardcodes a model on purpose — it rides whatever Codex ships as its current frontier default, so it picks up new models the day they land. This release refreshes the skill's documentation to match the July 2026 lineup: the illustrative `-m` examples and the "Model & Reasoning" section now reference the GPT-5.6 family (`sol` > `terra` > `luna`, with bare `gpt-5.6` aliasing to `sol`) instead of the retired `gpt-5.1-codex-max` / `gpt-5.2` names, and the reasoning-effort docs now cover the new `max` level that 5.6 adds above `xhigh`. Defaults, flags, and the `--xhigh` override are unchanged. +The `/codex` skill never hardcodes a model on purpose. It rides whatever Codex ships as its current frontier default, so it picks up new models the day they land. This release refreshes the skill's documentation to match the July 2026 lineup: the illustrative `-m` examples and the "Model & Reasoning" section now reference the GPT-5.6 family (`sol` > `terra` > `luna`; the bare `gpt-5.6` API alias routes to `sol`) instead of `gpt-5.1-codex-max` (retired from Codex, API shutdown 2026-07-23) and `gpt-5.2` (deprecated but still selectable), and the reasoning-effort docs now cover the new `max` level that 5.6 adds above `xhigh`. Defaults, flags, and the `--xhigh` override are unchanged. ### The GPT-5.6 numbers that matter @@ -17,17 +17,17 @@ Source: OpenAI's GPT-5.6 launch materials and the OpenRouter API listing (July 2 | `gpt-5.6-terra` | 1.05M (128k out) | $2.50 / $15 | Balanced everyday model | | `gpt-5.6-luna` | 1.05M (128k out) | $1 / $6 | Fast and affordable | -Reasoning-effort levels are now `none`, `low`, `medium`, `high`, `xhigh`, `max`. gstack still defaults Review/Challenge to `high` and Consult to `medium`, and wires no flag for `max` (pass `-c model_reasoning_effort=max` by hand if you truly need it). +Reasoning-effort levels on GPT-5.6 are `none`, `low`, `medium`, `high`, `xhigh`, `max` (an `ultra` tier above `max` appears on some surfaces). gstack still defaults Review/Challenge to `high` and Consult to `medium`, and wires no flag for `max`. To use it by hand you need codex CLI 0.144 or newer and an explicit GPT-5.6 model: `-m gpt-5.6-sol -c model_reasoning_effort=max`. Older CLIs reject the value. ### What this means for you -Nothing changes in how `/codex` runs — it was already using 5.6 the moment it became Codex's default. The docs just stop pointing at dead model names, so when you reach for `-m` you see the models that actually exist today. +Nothing changes in how `/codex` runs. It picks up GPT-5.6 as soon as Codex makes it the default. The docs just stop pointing at superseded model names, so when you reach for `-m` you see the current lineup. ### Itemized changes #### Changed -- `codex/SKILL.md` (+ template): Model & Reasoning section names the GPT-5.6 family as the current frontier; `-m` examples updated from `gpt-5.1-codex-max` / `gpt-5.2` to `gpt-5.6-sol` / `gpt-5.6-luna`; documented the new `max` reasoning-effort level above `xhigh`. No change to the no-hardcode default or the per-mode reasoning defaults. +- `codex/SKILL.md` (+ template): Model & Reasoning section names the GPT-5.6 family as the current frontier; `-m` examples updated from `gpt-5.1-codex-max` / `gpt-5.2` to `gpt-5.6-sol` / `gpt-5.6-luna`; documented the new `max` reasoning-effort level above `xhigh`, including the CLI-version (codex >= 0.144) and explicit-5.6-model caveats needed to actually use it. No change to the no-hardcode default or the per-mode reasoning defaults. Contributed by @cathrynlavery. ## [1.58.5.0] - 2026-06-21 From 9faf8c29295d5aed2f4a2ac64312432374d8b7e7 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Thu, 9 Jul 2026 18:36:26 -0700 Subject: [PATCH 7/7] docs(todos): fail-fast fork-PR secret detection in evals.yml Filed from the PR #2211 full-checks run: fork shards burned 31m48s timing out on an empty ANTHROPIC_API_KEY before failing, and the contributor re-triggered the doomed run reading it as flakiness. Co-Authored-By: Claude Fable 5 --- TODOS.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/TODOS.md b/TODOS.md index f9753970b..6a178e184 100644 --- a/TODOS.md +++ b/TODOS.md @@ -45,6 +45,32 @@ a silent mistake breaks all 52 skills. High blast radius — needs its own focus ## Test infrastructure +### P3: Fail-fast fork-PR secret detection in evals.yml (filed via PR #2211 full-checks run) + +**Priority:** P3 + +**What:** Add an early step to each eval shard in `.github/workflows/evals.yml` that +detects a secretless run (fork PR: `secrets.ANTHROPIC_API_KEY` empty) and exits +immediately with a clear "fork PR: eval secrets unavailable — see fork-PR workflow in +CLAUDE.md" annotation instead of running tests into auth failures. + +**Why:** On fork PR #2211, `e2e-review` failed in 1m with `error_api` and +`e2e-pty-plan-smoke` burned 31m48s of runner time timing out on "Not logged in" +before failing. The contributor read it as flakiness and re-triggered, burning the +time twice. A 5-second preflight would have said exactly what was wrong. + +**Pros:** Saves ~30+ min of Ubicloud runner time per fork-PR push; replaces a +misleading red X with an actionable message; stops contributors re-triggering +doomed runs. +**Cons:** One more conditional per shard; must not mask a genuinely misconfigured +base-repo secret (annotate differently when `github.event.pull_request.head.repo.fork` +is false). + +**Context / where to start:** `.github/workflows/evals.yml` matrix job — add a step +before "Run " that checks the secret and `github.event.pull_request.head.repo.fork`, +emits a `::notice` and exits 0 (or neutral). Diagnosis receipts: PR #2211 run 29056479216, +jobs 86249027242 (empty `ANTHROPIC_API_KEY`, `error_api`) and 86249027265 (login timeout). + ### Eval harness: live progress + incremental result persistence (kill the silent hour) **Priority:** P1