gstack's Codex second opinions work on macOS again

5 days ago

What changed in gstack 1.91.31.0 and 1.91.32.0 (both 2026-10-06): Codex second opinions work from zsh on macOS again, text from a PR or reviewer can no longer run as a shell command, Codex usage limits are named, /autoplan recovers in long sessions, broken hooks are refused, the router respects your skill list, and Rails runtime qualification stops failing at random. https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#191310---2026-10-06 https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#191320---2026-10-06

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Codex works from zsh
  2. 0:14Reviewer text stays text
  3. 0:26Codex limits are named
  4. 0:38/autoplan in long sessions
  5. 0:51Broken hooks are refused
  6. 1:03Router respects your skill list
  7. 1:14Smaller fixes
Show transcript

Codex works from zsh

gstack logo

gstack's Codex second opinions work on macOS again

FROM ZSH, SINCE 1.91.16.0
CODEX_MODEL: invalid

/ship, /review, /codex and plan reviews ran without the outside voice

NOW
CODEX_MODEL: <model>

helpers find themselves under bash and zsh

CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

gstack's Codex second opinions work on macOS again. From zsh, every Codex pass reported an invalid model, so /ship, /review and the plan reviews ran without their outside voice. Now they get it back.

Reviewer text stays text

Text from a PR or reviewer can no longer run as a shell command

BEFORE
"Fixed in ."

a Greptile reply quoting a commit in backticks ran the commit hash as a command

NOW
Sent from a private file

posted byte for byte; if the file is missing, nothing is sent

CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

Text from a pull request or a reviewer can no longer run as a shell command. A Greptile reply quoting a commit in backticks used to run it. Now that text travels as a private file.

Codex limits are named

A Codex usage limit now says so, with its reset time

quota_exhaustedCodex's reset line; no more Codex calls for 15 minutes
unverified (rate_limited)a plain rate limit; the review still runs
CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

A Codex usage limit is now named, not inconclusive. You see Codex's reset time, and gstack stops calling Codex for fifteen minutes. A plain rate limit still lets the review run.

/autoplan in long sessions

/autoplan stops asking you to retry in a very long session

code too_large, with the journal size
/context-save→new session→/context-restore→/autoplan
CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

/autoplan no longer asks you to retry forever in a very long session. It names the journal size and a recovery that keeps your work: save context, new session, restore, run again.

Broken hooks are refused

Setup and auto-update refuse a hook that does not parse

setupRegisters the hooks that parse and names the broken one, file and line
team-mode auto-updateHolds the release, so your current hooks keep running
CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

Setup now registers only the hooks that parse, and names the broken one with its file and line. Team-mode auto-update holds a release whose hook would not parse, so your current hooks keep running.

Router respects your skill list

The router only picks skills your session has turned on

GONE
"When in doubt, invoke the skill"
NOW
Answers directly when it should

quick questions and small scoped edits

A CLAUDE.md gstack wrote for you keeps the old line until you edit it
CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.32.0

The router now routes only to skills your session has turned on. When in doubt, invoke the skill, is gone, though a CLAUDE.md that gstack wrote keeps that line until you edit it.

Smaller fixes

Rails runtime qualificationExporting the prepared app no longer fails at random
Spawned sessionsNever grant consent on their own
/shipSkips Greptile triage when there is no PR yet, and says why
CHANGELOG.mdFull notes, including the CLAUDE.md edit
CodexSecurityLimits/autoplanHooksRouterFixes
garrytan/gstack · CHANGELOG 1.91.31.0 · 1.91.32.0

Rails qualification no longer fails at random exporting the prepared app. Spawned sessions never grant consent on their own. And /ship skips Greptile triage before a pull request exists. The changelog has the rest.