Skip to content

v0.0.288: GPT-6 Astra

Choose a tag to compare

@github-actions github-actions released this 06 Sep 01:54
· 45 commits to main since this release

v0.0.288 (2026-09-06): GPT-6 Astra

The headline is OpenAI's GPT-6 Astra. It is the default Codex model in this
cut: sign in with ChatGPT, then /model or graff --model gpt-6-astra.
Astra runs on the Responses wire with a 272k context window, mid-turn
steering, vision, hosted search, and OpenAI server-side compact.

287 stays published as-is. This is not a retag.

GPT-6 Astra

A ChatGPT login now surfaces gpt-6-astra (Codex /models client 0.153.0).
/model codex picks it. Codegraff GPT-6 aliases use the same Responses path.

What that unlocks in this binary:

  • Mid-turn steering. A follow-up typed while Astra is still answering is
    sent as response.steer on the live WebSocket, instead of waiting for the
    turn to finish. GPT-5.6 and earlier still queue until the current reply
    ends.
  • Vision. Astra accepts native image blocks (pasted, dropped, or @
    attached), the same path the desktop composer and TUI already use.
  • Hosted tool_search and web_search. Folded tools load by name at the
    end of the window instead of paying every schema up front. Hosted web search
    is spliced onto Codex Responses; it is not emitted until deferred tools are
    ready. GRAFF_CODEX_WEB_SEARCH=0 turns the search splice off.
  • OpenAI compact. GPT-6+ on Codegraff uses /responses/compact. Grok on
    the same gateway keeps the client summarizer (xAI's blob path is the better
    fit there).
  • Astra working guidance is attached only while Astra is the selected
    model. Switching away drops it; a child inherits it only when the child is
    also Astra.
graff --model gpt-6-astra
# or, in a session:
/model gpt-6-astra

Gemini, on Google's Interactions API

Gemini is a first-class provider. GEMINI_API_KEY serves gemini-* directly
instead of falling through the gateway as an uncatalogued model.
graff --model gemini-3.8-flash picks it up.

This is a fourth wire format beside Anthropic Messages, OpenAI chat, and
OpenAI Responses: a turn POSTs one Interaction and reads back execution
steps (thought / model_output / function_call), with its own
step.start / step.delta event stream. Uncatalogued Gemini inherited a
conservative 200k window and compacted at 160k. The live models are 1,048,576
tokens and compact near 838k.

Two crashes found while wiring it are gone: a top-level JSON array (how
Google's compatibility layer returns errors) no longer panics, and streamed
extra_content no longer points into per-request scratch that is reset
before the next turn.

Desktop composer

The native app composer takes real @ files, image paste, and drop. Those
attachments ride the same ACP turn path as the CLI, so Astra (and every other
vision model) sees pixels, not a path string.

Harness

  • Recorded user constraints ride the root prefix as live ledger JSON,
    including the empty set, so a compaction recap cannot invent a recording. A
    write refreshes instructions in the same turn and drops a cached Responses
    continuation.
  • A second bracketed paste in the same input batch no longer turns its first
    newline into Enter.
  • A truncated tool-call argument stream cannot poison later requests in the
    same turn (#752).
  • A plain final reply with unfinished current work gets one reconciliation
    request; a remaining stop is explicit (#745).
  • Hosted search waits until deferred tools are ready (#746).

Downloads

All six CLI archives, the curl installer, and checksums:

File Platform
graff-aarch64-linux.tar.gz Linux arm64
graff-aarch64-macos.tar.gz macOS Apple Silicon (Developer ID signed, Apple notarized)
graff-aarch64-windows.tar.gz Windows arm64
graff-x86_64-linux.tar.gz Linux x86_64
graff-x86_64-macos.tar.gz macOS Intel (Developer ID signed, Apple notarized)
graff-x86_64-windows.tar.gz Windows x86_64
install.sh curl installer
SHA256SUMS checksums for the six archives
curl -fsSL https://github.com/justrach/codegraff/releases/download/v0.0.288/install.sh | bash

Both macOS binaries are Developer ID Application signed (hardened runtime,
timestamped) and Apple notarized (Accepted:
a7d967a6-f5e7-45ae-afc1-7888e6d490ca aarch64,
e9b9b29b-70e5-4240-846e-567b4728bb31 x86_64). Stapling is skipped on the
bare CLI (stapler error 73); Gatekeeper checks the ticket online at first
launch. GitHub also attaches the usual source zip/tarball for the tag.