Skip to content

Make command help complete and consistent - #384

Merged
saioai merged 14 commits into
mainfrom
codex/flag-descriptions-20261007
Oct 8, 2026
Merged

saioai merged 14 commits into
mainfrom
codex/flag-descriptions-20261007

Conversation

@saioai

@saioai saioai commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Command help currently shows a short page and requires help --all for the full reference. This gives every help entrypoint the same complete command page. The layout follows gcloud's full reference, with concrete syntax and clearer flag descriptions.

What changes

  • -h, --help, and help show the same page, including after valid options and through nested command paths.
  • Short summaries lead into syntax, descriptions, examples, and complete local option definitions.
  • Meaningful labels, separate defaults and environment names, and plain terminal prose make flags easier to scan.
  • Child pages list inherited flags and link to the full root reference. Local image commands explain their output restrictions.
  • Legacy help --all prints migration guidance before the same page. Command-owned images models --all stays available.
  • Parser errors explain expected types, suggest known flag names, and print the relevant help command without exposing rejected values.

Commands

No new commands or flags. These help forms now show identical content:

openai images generate -h
openai images generate --help
openai help images generate

openai images generate --size 1024x1024 --help  # help after options
openai --help images generate                   # help before the command
openai models retrieve --help                   # positional, flag, and stdin forms
openai --help                                   # complete global option details

Help remains offline. Required-input notes preserve existing positional, flag, JSON, and YAML input contracts. Request defaults and output modes are unchanged.

Code

internal/clihelp owns help routing, synopses, flag references, and terminal prose. pkg/custom supplies presentation metadata and parser-error guidance. Generated path-input metadata follows existing command clones without changing flags or actions.

The completion change preserves manually typed legacy help flags while hiding them from suggestions. Generated API sources, dependencies, and main.go are unchanged.

Tested

Merged pinned main d32b3ae into the reviewed Help branch. The merge preserves c9817b1 and imports the exact upstream voice contract.

Fresh macOS validation at fc944da passed 1,166 public test/subtest checks, including required native Bash/zsh execution. Internal help/request-flag checks passed 540 records. Custom integration passed 191 records; voice contracts passed 29. These runs had no failures or skips.

The owned voice-type read cancellation test passed under the race detector. All package tests compiled. The candidate build, go vet ./..., and go mod verify passed.

Independent adversarial review passed 584 assertions across 527 processes. It covered complete-help equality, native copied commands, parser privacy, multipart inputs, and the merged voice contract.

Generated sources, schemas, and generation metadata match pinned main exactly. Main's trusted custom-code checker passed at 21/1,000 lines.

CI and native help checks passed at fc944da; conditional jobs were skipped.

The naming-only follow-up preserves every test assertion. It passed 11 focused test records, and the existing help CI selector discovers all four renamed tests. CI is rerunning at 1f6c0a8. The broader manual platform campaign remains deferred.

Demo

Real binaries on macOS, recorded at 90 and 56 columns. Before is main da762ff; after is this PR. Captures made no API requests. Images show labeled excerpts; the recorder also retains complete stdout. Fresh comparison checks confirm all four recorded help pages remain byte-identical after the pinned-main merge.

Complete help before and after

Before:

Before: short models retrieval help

After:

After: complete models retrieval help

Recording recipe

BEGIN_COMMIT_OVERRIDE
feat(help): show complete help consistently and improve flag diagnostics (#384)
END_COMMIT_OVERRIDE

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Castiron custom code

Evaluated main: babc0e001e2def850d66303c08330ee704e6886c.

✅ No new custom-code files detected.

2 mixed files remain; 0 existing customizations changed.

Compared d32b3ae1d3fb → 1f6c0a8bb87e. Generated baselines verified.

2 existing customizations unchanged
  • pkg/cmd/adminorganizationcertificate.go
  • pkg/cmd/audiovoice.go

A changed generated baseline means this report cannot reliably identify which handwritten lines changed.

Inspect the custom-code diff

Download the exact patch produced by this run (requires repository access):

gh run download 37814988099 --repo openai/openai-cli \
  --name castiron-custom-code-37814988099-1 --dir /tmp/castiron-custom-code-37814988099-1
git apply --stat /tmp/castiron-custom-code-37814988099-1/custom-code.patch
cat /tmp/castiron-custom-code-37814988099-1/custom-code.patch

Or reproduce it from an SDK checkout containing the vendored reporter:

git fetch --no-tags origin babc0e001e2def850d66303c08330ee704e6886c 1f6c0a8bb87eff90526b39b27152aab411ac28ad
python3 scripts/castiron/custom_code_report.py report \
  --base babc0e001e2def850d66303c08330ee704e6886c \
  --head 1f6c0a8bb87eff90526b39b27152aab411ac28ad --fetch --require-head-hash --public \
  --out /tmp/castiron-custom-code-1f6c0a8bb87e
cat /tmp/castiron-custom-code-1f6c0a8bb87e/custom-code.patch

This is the current full custom patch for mixed files, not an attribution of only the handwritten lines changed by this PR.

Full report and patch

@saioai

saioai commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

Please review commit fc944da950db66f8043caec22f2d7b0c53684561 against this PR's current base. Check public-command behavior, preserved input/output contracts, errors, and cancellation. Distinguish code defects from the documented validation limits.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-08T17:20:36.470036Z 1f6c0a8 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-08T17:19:53.887616Z 1f6c0a8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: fc944da950

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: fc944da950

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@saioai
saioai marked this pull request as ready for review October 8, 2026 17:13
@saioai
saioai requested a review from a team as a code owner October 8, 2026 17:13

@markstuart-oai markstuart-oai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1f6c0a8bb87eff90526b39b27152aab411ac28ad. No actionable findings.

I checked help routing, legacy --all, flag and positional-input descriptions, terminal text, completion behavior, and parser-error guidance. The changes keep request handling separate from help presentation.

Source-only review; I did not run repository tests or builds. Hosted tests, build, lint, and help checks on macOS, Ubuntu, and Windows passed for this head.

@saioai
saioai added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit 6fcc478 Oct 8, 2026
27 checks passed
@saioai
saioai deleted the codex/flag-descriptions-20261007 branch October 8, 2026 17:32
@jbeckwith-oai jbeckwith-oai mentioned this pull request Oct 9, 2026
Tmwakalasya pushed a commit to Tmwakalasya/openai-cli that referenced this pull request Oct 19, 2026
Help could discard option values such as `--project --help`. Bash
completion could duplicate `--file=` in quoted paths.
This preserves the intended help topic and completes the correct file
argument.

### What changes

- Keep literal help switches and delimiters when they are global flag
values.
- Preserve quoted and escaped file assignments during Bash completion.
- Add regression cases that fail against the previous behavior.
- Select both regressions through the existing native OS CI tests.

### Commands

No new commands or flags.

```sh
openai help --project --help models list  # Keep --help as the project value.
openai transcribe --file='assets/lo'      # Press Tab to complete the filename.
```

### Code

The fixes stay in `internal/clihelp` and the existing Bash completion
script.
Public process tests check help routing. Native Readline tests check the
accepted arguments.
The native Bash check reuses the existing PTY helper and the CLI built
by the shell test.
The demo recorder reuses the shared capture lifecycle.

### Tested

Focused help, completion, routing, global flag, tokenizer, Codex, and
admin setup checks passed on macOS arm64.
The Go 1.27.0 runs had no failures or skips.
Focused Go vet and Bash syntax checks passed.

The Go 1.26.9 binary passed 64 independent Bash/zsh help probes and ten
native Bash 3.2 completion cases.
Four completion cases failed on the baseline. Seven admin setup PTY
cases also passed.
Independent review found no remaining defects in this change.

The existing CI filter now selects the literal-help regression and the
Unix Bash Readline check.
Required Bash jobs fail if Python is missing or any of the five cases
remains unexecuted.
The focused follow-up passed locally with Go 1.26.9 and Bash 3.2.57.
The old binary fails the intended argument assertion. Fresh CI execution
remains pending.

Native Windows, Linux, Fish, Bash 5, WSL, SSH/tmux, and graphical
terminal coverage remain incomplete.
This PR does not claim complete platform coverage. Fresh native CI
results remain pending.
Six source-preparation tests and eleven classifier tests passed after
merging main `541cc03`.
The PR diff and production blobs remain unchanged.
Fresh CodeQL source preparation passed for head `79d1810` and base
`541cc03`.

### Demo

macOS arm64, Bash 3.2 PTY replay, comparing main `0ca3ac7` with
`205292b`.
The completion backend runs against a synthetic filename. The recorder
captures arguments without sending a transcription request.
Help shows seven lines; the recorder retains complete output and exit
status.
This replay does not establish graphical terminal behavior.
The follow-up changes tests only, so the recorded runtime remains
unchanged.

[View image:
comparison.gif](https://flow.apps.openai.org/api/v1/gh/attachments/openai/openai-cli/440/a30b50b9462b4599824d416a4e531517.gif)

Before:

[View image:
before.png](https://flow.apps.openai.org/api/v1/gh/attachments/openai/openai-cli/440/ff304785ad02482daf6de8f2cfa5db51.png)

After:

[View image:
after.png](https://flow.apps.openai.org/api/v1/gh/attachments/openai/openai-cli/440/1f74fde52a9548a397a38dd0e461e2ae.png)

These attachment links use Flow sign-in. Inline GitHub media remains
unavailable.

[Recording
recipe](https://github.com/openai/openai-cli/blob/205292b8e6569145de021a110d53092b1e5daf86/scripts/demos/record-command-compatibility.sh)

<!-- compatibility-parent: openai#246 -->
<!-- compatibility-parent: openai#299 -->
<!-- compatibility-parent: openai#315 -->
<!-- compatibility-parent: openai#316 -->
<!-- compatibility-parent: openai#317 -->
<!-- compatibility-parent: openai#347 -->
<!-- compatibility-parent: openai#348 -->
<!-- compatibility-parent: openai#349 -->
<!-- compatibility-parent: openai#379 -->
<!-- compatibility-parent: openai#382 -->
<!-- compatibility-parent: openai#384 -->
<!-- compatibility-parent: openai#386 -->
<!-- compatibility-parent: openai#387 -->
<!-- compatibility-parent: openai#399 -->
<!-- compatibility-parent: openai#413 -->

<!-- codex-thread: 01a131fd-7e05-7622-8102-817940a4b4ee -->
Tmwakalasya pushed a commit to Tmwakalasya/openai-cli that referenced this pull request Oct 19, 2026
The help matrix lacks explicit jobs for macOS amd64, Linux arm64, and
Windows arm64. This adds those jobs and checks the architecture before
tests start.

### What changes

- Add the standard `macos-15-intel`, `ubuntu-24.04-arm`, and
`windows-11-arm` runners.
- Preserve the three existing `Help on ...` status names.
- Check the runner architecture and both Go host and target platforms
before testing.
- Keep the existing test selections and required shells for each
operating system.

### Commands

No CLI commands, flags, defaults, or output behavior change. Each runner
uses the existing commands:

```sh
go test ./internal/clihelp ./internal/requestflag -count=1 -v
go test ./cmd/openai -run '^(TestMainHelp|TestMainDispatch|TestMainNativeShell)' -count=1 -v
```

macOS requires Bash and zsh. Linux requires Bash. Windows requires
Command Prompt, Windows PowerShell, and PowerShell 7.

### Code

Only `.github/workflows/help-compatibility.yml` changes. It adds matrix
entries and verifies runner, Go host, and Go target identities.

Prepared-source handling, action pins, permissions, SDK linking, and
test selectors remain unchanged. Runtime code and generated commands
stay unchanged.

### Tested

Before committing, YAML parsing, workflow comparisons, Bash syntax, and
13 simulated architecture cases passed on macOS.
Commit `3d4d9ac` contains the same workflow bytes.
The existing source-boundary test also passed. These checks ran no Go
product tests.

CI passed on `3d4d9ac`, including all six native compatibility jobs.
The new jobs ran Go 1.26.9 on macOS amd64, Linux arm64, and Windows
arm64.
Required shell checks passed. Optional Linux ARM64 zsh and three Windows
ARM64 symlink/POSIX cases skipped.

Linux `386`/`arm` and Windows `386` remain unverified. These CI checks
do not establish graphical-terminal appearance.

### Demo

This workflow change has no visible CLI change, so no graphical demo is
needed.

<!-- compatibility-parent: openai#246 -->
<!-- compatibility-parent: openai#265 -->
<!-- compatibility-parent: openai#266 -->
<!-- compatibility-parent: openai#279 -->
<!-- compatibility-parent: openai#291 -->
<!-- compatibility-parent: openai#297 -->
<!-- compatibility-parent: openai#315 -->
<!-- compatibility-parent: openai#316 -->
<!-- compatibility-parent: openai#347 -->
<!-- compatibility-parent: openai#348 -->
<!-- compatibility-parent: openai#357 -->
<!-- compatibility-parent: openai#379 -->
<!-- compatibility-parent: openai#384 -->
<!-- compatibility-parent: openai#386 -->
<!-- compatibility-parent: openai#387 -->
<!-- compatibility-parent: openai#392 -->
<!-- compatibility-parent: openai#397 -->

<!-- codex-thread: 01a131fd-7e05-7622-8102-817940a4b4ee -->
Tmwakalasya pushed a commit to Tmwakalasya/openai-cli that referenced this pull request Oct 19, 2026
In Ubuntu's Fish 3, typing `openai images gen` and pressing Tab could
print an option error instead of completing `generate`.

File completion also returned unrelated matches such as
`assets/a=assets/` when the intended file was `assets/a=b.png`.

This fixes those completion paths and checks them on Linux x64 and
ARM64.

### What changes

- Restore Fish 3 completion through its supported tokenization command
while preserving Fish 4 token expansion.
- Keep literal `=` and `:` filename prefixes from producing unrelated
Fish 3 matches.
- Check restored Tab bindings against each shell's original binding, so
equivalent Fish 3 and Fish 4 output both pass.
- Require zsh, Fish, and quoting checks on both existing Linux runners;
missing or skipped tests fail.
- Install zsh, Fish, and Expect from signed Ubuntu sources and record
their versions, architectures, and executable paths.

### Commands

No CLI commands or flags change. These examples show the prefixes to
type before pressing Tab:

```sh
# Press Tab after gen to complete generate.
openai images gen

# With assets/a=b.png present, press Tab after a= to complete that filename.
openai files create --file=assets/a=
```

### Code

The Fish adapter in
`internal/autocomplete/shellscripts/fish_autocomplete.fish` retains
`commandline -xpc` and falls back to `-opc`.

The fallback does not evaluate command substitutions. Fish 3 retains
literal-token behavior; Fish 4 retains variable expansion.

For legacy literal file prefixes, Fish's tokenizer removes quoting
before the adapter encodes separators for the existing path helper.

Expansion-bearing paths keep Fish's native behavior. This does not fix
Fish 3 separator matches after variables or substitutions.

The adjacent binding tests compare exact before/after bytes and preserve
Tab execution, fallback, resourcing, and repeated disable checks.

The workflow preserves all six job names, action pins, permissions,
prepared-source handling, and native architecture guards.

The existing tests use isolated settings, synthetic executables, and
private PTYs. This adds no Go package or test framework.

The [workflow
recipe](https://github.com/openai/openai-cli/blob/ad584b96be03d19bffdc82f2fcb98edfd550b8e0/.github/workflows/help-compatibility.yml)
contains the exact test selections and required-shell settings.

### Tested

Local validation passed: YAML, Bash syntax, preserved workflow fields,
ten execution-gate probes, six pipeline probes, and the existing
source-boundary test.

Six executable-identity probes also passed. They cover Ubuntu path
aliases, unrelated executables, empty metadata, failed metadata
commands, and architecture mismatches.

Fish 4.9.3 passed all eight Fish test groups and 49 subtests on macOS
ARM64, with no skips.

The added cases cover literal separators, balanced and unfinished
quotes, spaces, backslashes, variable paths, and inert command
substitutions.

Independent source review accepted the Fish correction. Corrected Linux
execution remains pending.

SDK CODEOWNER review remains required for this workflow change.

The Fish package tests explicitly source rendered scripts. They do not
establish automatic `vendor_conf.d` discovery or production package
installation.

### Demo

Fish 3 before: Tab prints `commandline: -xpc: unknown option` instead of
completing the command.

Expected Fish 3 result, pending hosted verification: `openai images
gen<Tab>` completes to `openai images generate`.

Hosted shell execution does not establish graphical terminal appearance
or interactive zsh Tab behavior.

<!-- compatibility-parent: openai#246 -->
<!-- compatibility-parent: openai#291 -->
<!-- compatibility-parent: openai#297 -->
<!-- compatibility-parent: openai#315 -->
<!-- compatibility-parent: openai#316 -->
<!-- compatibility-parent: openai#347 -->
<!-- compatibility-parent: openai#348 -->
<!-- compatibility-parent: openai#357 -->
<!-- compatibility-parent: openai#359 -->
<!-- compatibility-parent: openai#360 -->
<!-- compatibility-parent: openai#361 -->
<!-- compatibility-parent: openai#379 -->
<!-- compatibility-parent: openai#384 -->
<!-- codex-thread: 01a131fd-7e05-7622-8102-817940a4b4ee -->
Tmwakalasya pushed a commit to Tmwakalasya/openai-cli that referenced this pull request Oct 19, 2026
WSL CI did not check several behaviors already tested elsewhere,
including some command aliases and per-command API settings.
This adds those checks, including real Bash commands with quoted and
empty values.
CI fails if an expected check is missing, skipped, or fails.

### What changes

- Add a WSL 1 profile for command and request checks.
- Cover request settings, environment restoration, command routing,
help, output formats, errors, and saved settings.
- Exercise requests through real Bash, including quoted values, empty
overrides, API errors, and local completion.
- Keep the existing WSL profile and its evidence separate. The
supplement contains no duplicate baseline roots.
- Require every expected result exactly once, with no skips or failures.
- Reserve the complete 70-second custom stage before launch. Preserve
the process and cleanup deadlines.

### Commands

No CLI commands or flags change. The CI runner gains
`--command-contracts`.

```sh
python -I -B scripts/test_wsl_pager.py # offline runner controls
```

The hosted workflow builds both Linux test binaries and supplies the
required run identity and deadlines.
Its Windows command is:

```powershell
python -I -B scripts/check-wsl-pager.py --command-contracts --binary (Join-Path $env:RUNNER_TEMP 'wsl-pager.test') --process-binary (Join-Path $env:RUNNER_TEMP 'wsl-process.test')
```

Omitting `--command-contracts` preserves the existing pager and process
selection.
`--cleanup` remains independent of the supplemental inventory.

### Code

The existing WSL runner owns import, payload verification, test
execution, and cleanup.
`scripts/wsl-command-cases.json` holds the fixed expected names.
The offline controls check selection, failure handling, deadline
admission, and cleanup.
The Bash test reuses the existing process payload, so the guest needs no
compiler.
The workflow keeps both profiles isolated on separate hosted runners
with distinct artifacts.
Production Go code, generated files, and dependencies remain unchanged.

### Tested

Candidate `4a68d479` includes shipping main `d01b8549`.
All six PR files match `16856d47`.
The incoming changes update generated API documentation and generation
metadata.
Selected runtime paths, test bodies, helpers, and dependencies remain
unchanged.
The results below retain their original source attribution. Fresh
protected checks remain pending.

At `16856d47`, workflow structure checks and all 55 offline controls
passed.

[Native WSL
jobs](https://github.com/openai/openai-cli/actions/runs/38641281697)
passed all 632 supplemental names on Ubuntu 24.04 WSL 1 AMD64.
The separate baseline passed all 147 names. Neither profile skipped or
failed a selected case.
All 1,121 prepared source files matched `16856d47`.
Both profiles verified payloads, process exits, stream completion,
deadlines, and removal of their owned distributions.
Repeated cleanup confirmed their absence.
The five Bash cases made five CLI calls and four requests.
The API 400 preserved exit 1; completion made no requests.

On macOS ARM64 with Go 1.26.9, all 69 tests and 563 subtests passed at
`d2e2cdd`.
No selected tests skipped or failed. All five validation jobs exited
zero, with unchanged source and input hashes.
The selected test bodies, shared helpers, selected runtime paths, and
dependencies remain unchanged.
Those earlier process results retain their original source attribution.

These checks do not establish Windows Terminal appearance, physical
keyboard behavior, or native Windows CLI compatibility.
WSL 2, ARM64 WSL, and general DrvFS behavior remain untested.

### Demo

No visible behavior changes. This PR adds compatibility checks only.

<!-- compatibility-parent: openai#265 -->
<!-- compatibility-parent: openai#266 -->
<!-- compatibility-parent: openai#297 -->
<!-- compatibility-parent: openai#315 -->
<!-- compatibility-parent: openai#347 -->
<!-- compatibility-parent: openai#358 -->
<!-- compatibility-parent: openai#379 -->
<!-- compatibility-parent: openai#382 -->
<!-- compatibility-parent: openai#384 -->
<!-- compatibility-parent: openai#394 -->

<!-- codex-thread: 01a131fd-7e05-7622-8102-817940a4b4ee -->
fredatgithub pushed a commit to fredatgithub/openai-cli that referenced this pull request Oct 19, 2026
Automated Release PR
---


##
[1.39.0](openai/openai-cli@v1.38.0...v1.39.0)
(2026-10-19)


### Features

* **admin:** add guided admin-key setup and access verification
([openai#387](openai#387))
([4183995](openai@4183995))
* **api:** add Decisions creation and hosted environment reference
([openai#437](openai#437))
([0ca3ac7](openai@0ca3ac7))
* **api:** add Decisions prompt caching options
([openai#501](openai#501))
([5031be2](openai@5031be2))
* **api:** add organization Decisions usage reporting
([openai#435](openai#435))
([ba6cb09](openai@ba6cb09))
* **api:** add prompt-based voice creation
([openai#502](openai#502))
([72f552b](openai@72f552b))
* **api:** add safety identifiers to image requests and responses
([openai#503](openai#503))
([b624c9f](openai@b624c9f))
* **api:** configure Decisions when accepting Live SIP calls
([openai#505](openai#505))
([e17ac83](openai@e17ac83))
* **api:** support project API key scope updates
([openai#478](openai#478))
([7afecce](openai@7afecce))
* **api:** support updating project API key expiry
([openai#462](openai#462))
([97b43f2](openai@97b43f2))
* **audio:** add speech workflows, local history, playback, export, and
readable transcripts
([openai#403](openai#403))
([fe17bcb](openai@fe17bcb))
* **batches:** add waiting, result collection, and safe downloads
([openai#388](openai#388))
([ecaf876](openai@ecaf876))
* **cli:** add scoped error recovery and optional shell typo suggestions
([openai#409](openai#409))
([a81ec27](openai@a81ec27))
* **cli:** show a welcome card during bare interactive startup
([openai#401](openai#401))
([024dbaa](openai@024dbaa))
* **files:** add get and download routes with positional uploads
([openai#397](openai#397))
([e689398](openai@e689398))
* **help:** show complete help consistently and improve flag diagnostics
([openai#384](openai#384))
([6fcc478](openai@6fcc478))
* **images:** add interactive and opt-in Konsole previews
([openai#371](openai#371))
([d3bc819](openai@d3bc819))
* **images:** retain picker drafts and keep failed requests editable
([openai#394](openai#394))
([1dc9d3d](openai@1dc9d3d))
* **models:** add filtered ID and owner lists with interactive
navigation ([openai#391](openai#391))
([86502b0](openai@86502b0))
* **output:** add quiet and verbose controls
([openai#392](openai#392))
([866d877](openai@866d877))
* **tokenizer:** add offline token inspection and local Codex guidance
([openai#386](openai#386))
([217ff2e](openai@217ff2e))


### Bug Fixes

* **autocomplete:** preserve colon argument boundaries
([openai#413](openai#413))
([5739ce0](openai@5739ce0))
* **autocomplete:** preserve quoted and Unicode filenames during Bash
completion ([openai#446](openai#446))
([6ec7646](openai@6ec7646))
* **autocomplete:** preserve quoted Bash command prefixes
([openai#399](openai#399))
([c3c66c4](openai@c3c66c4))
* **autocomplete:** restore Fish 3 completion and literal filename
prefixes ([openai#447](openai#447))
([f93670c](openai@f93670c))
* **ci:** decode SDK cross-link events as UTF-8
([openai#457](openai#457))
([af0e8a0](openai@af0e8a0))
* **cli:** emit finite JSON arrays; use --format jsonl for independent
records ([openai#407](openai#407))
([b93e41e](openai@b93e41e))
* **cli:** wait briefly for Windows piped input
([openai#485](openai#485))
([8b40840](openai@8b40840))
* **errors:** preserve incomplete resumed-stream failures and empty API
error details ([openai#439](openai#439))
([e8ffaab](openai@e8ffaab))
* **help:** preserve literal flag values and quoted Bash file completion
([openai#440](openai#440))
([47d6a16](openai@47d6a16))
* **images:** preserve reserved probe directories during Windows image
saves ([openai#470](openai#470))
([e330cc2](openai@e330cc2))
* **images:** retain saved-file recovery guidance after cancellation
([openai#442](openai#442))
([337a7e4](openai@337a7e4))
* **io:** preserve explicit stdin, stream events promptly, and protect
incomplete downloads
([openai#395](openai#395))
([390a9c3](openai@390a9c3))
* **models:** finish SIGINT shutdown with status 130
([openai#441](openai#441))
([673c5eb](openai@673c5eb))
* **output:** keep redirected results undecorated and preserve stream
cleanup ([openai#392](openai#392))
([866d877](openai@866d877))
* **output:** send successful API save receipts to stderr
([openai#395](openai#395))
([390a9c3](openai@390a9c3))
* **tokenizer:** preserve Windows Unicode input and split terminal
replies ([openai#454](openai#454))
([911218a](openai@911218a))


### Chores

* **api:** clarify Decisions request and response fields
([openai#476](openai#476))
([8301197](openai@8301197))
* **api:** correct the shida Live voice name
([openai#430](openai#430))
([193ee5b](openai@193ee5b))
* **api:** document 128-character safety identifiers
([openai#428](openai#428))
([a6bf1af](openai@a6bf1af))
* **api:** document beta pagination validation and migration
([openai#431](openai#431))
([729045e](openai@729045e))
* **api:** document beta session spending controls
([openai#432](openai#432))
([47df976](openai@47df976))
* **api:** document billing_not_active session errors
([openai#429](openai#429))
([8f26fe4](openai@8f26fe4))
* **api:** document detailed safety alert explanations
([openai#434](openai#434))
([2b61ced](openai@2b61ced))
* **api:** document Files API rate-limit responses
([openai#427](openai#427))
([88cd309](openai@88cd309))
* **api:** document image tool error and moderation details
([openai#451](openai#451))
([53b3b6e](openai@53b3b6e))
* **api:** document Live audio fixture events in the API reference
([openai#481](openai#481))
([38c82ce](openai@38c82ce))
* **api:** document OCI external-storage providers
([openai#433](openai#433))
([4f1f7df](openai@4f1f7df))
* **api:** document Realtime response error messages
([openai#479](openai#479))
([ec8d114](openai@ec8d114))
* **api:** document regional processing residency values
([openai#477](openai#477))
([75865b6](openai@75865b6))
* **api:** document snapshot lifecycle status values and events
([openai#415](openai#415))
([53828f0](openai@53828f0))
* **api:** document vault updates and metadata filters
([openai#426](openai#426))
([b724518](openai@b724518))
* **api:** use neutral moderation examples
([openai#518](openai#518))
([180544a](openai@180544a))
* clarify Live limits and refresh generated-file verification
([openai#510](openai#510))
([9cddd6b](openai@9cddd6b))
* **deps:** bump charm.land/bubbletea/v2 from 2.0.10 to 2.1.0 in the
go-minor-and-patch group across 1 directory
([openai#539](openai#539))
([37d5e5c](openai@37d5e5c))
* **deps:** bump the codeql group across 1 directory with 2 updates
([openai#543](openai#543))
([9023b9e](openai@9023b9e))
* **deps:** bump the go-minor-and-patch group across 1 directory with 5
updates ([openai#444](openai#444))
([263dadd](openai@263dadd))
* **deps:** bump the golang-x group across 1 directory with 2 updates
([openai#540](openai#540))
([52f0ad0](openai@52f0ad0))
* **deps:** update openai-go to v3.74.0
([openai#393](openai#393))
([e32158e](openai@e32158e))
* **deps:** update openai-go to v3.75.0
([openai#412](openai#412))
([077ae69](openai@077ae69))
* **deps:** update openai-go to v3.77.0
([openai#414](openai#414))
([835de59](openai@835de59))
* **deps:** update openai-go to v3.78.0
([openai#450](openai#450))
([8f79e98](openai@8f79e98))
* **deps:** update openai-go to v3.79.0
([openai#507](openai#507))
([0828c79](openai@0828c79))
* **deps:** update openai-go to v3.81.0
([openai#516](openai#516))
([6c26343](openai@6c26343))
* **deps:** update openai-go to v3.82.0
([openai#532](openai#532))
([00add07](openai@00add07))
* restore generated reporting tools without behavior changes
([openai#475](openai#475))
([c12cd56](openai@c12cd56))


### Documentation

* define CLI layout migration and compatibility contract
([openai#486](openai#486))
([e9ad31e](openai@e9ad31e))
* **windows:** explain JSON stderr capture in Windows PowerShell 5.1
([openai#443](openai#443))
([960af77](openai@960af77))


### Refactors

* **batches:** separate local workflows from assembly policy
([openai#547](openai#547))
([0486923](openai@0486923))
* extract CLI invocation runner into internal app
([openai#488](openai#488))
([ee7a731](openai@ee7a731))
* **files:** separate handwritten workflows and shared shell helpers
([openai#546](openai#546))
([a6bfb0b](openai@a6bfb0b))
* **input:** move non-consuming piped input probes
([openai#529](openai#529))
([904c95d](openai@904c95d))
* isolate browser platform handling in internal/terminal
([openai#504](openai#504))
([9d304ca](openai@9d304ca))
* isolate command-tree organization
([openai#515](openai#515))
([b5cc7a8](openai@b5cc7a8))
* isolate generated tokenizer tables
([openai#496](openai#496))
([efda414](openai@efda414))
* isolate the Codex command feature
([openai#509](openai#509))
([a6530ae](openai@a6530ae))
* isolate the manpage command feature
([openai#514](openai#514))
([7617d3d](openai@7617d3d))
* isolate the shared terminal output runtime
([openai#512](openai#512))
([d93d0d0](openai@d93d0d0))
* isolate the tokenizer command feature
([openai#513](openai#513))
([fb023ee](openai@fb023ee))
* keep mTLS transport construction in internal/request
([openai#522](openai#522))
([393e1ae](openai@393e1ae))
* keep request-input help with its renderer
([openai#519](openai#519))
([5791763](openai@5791763))
* **lists:** add shared paged-list navigation runtime
([openai#389](openai#389))
([d866707](openai@d866707))
* **lists:** prepare compact table rendering for resource lists
([openai#390](openai#390))
([c65e03e](openai@c65e03e))
* move command recovery into help
([openai#517](openai#517))
([5662bc2](openai@5662bc2))
* move response transformations into internal output
([openai#487](openai#487))
([55ebd62](openai@55ebd62))
* **output:** move finite JSON list framing and paging
([openai#537](openai#537))
([ee77628](openai@ee77628))
* **output:** move lazy transformation iterator
([openai#535](openai#535))
([ad22022](openai@ad22022))
* **output:** move pager and stdout streaming runtime
([openai#536](openai#536))
([cb5a5a8](openai@cb5a5a8))
* **output:** move readable list and stream rendering
([openai#538](openai#538))
([8b304b0](openai@8b304b0))
* **output:** move result formatting and format selection
([openai#534](openai#534))
([50db1df](openai@50db1df))
* **request:** extract piped input reading and merge policy
([openai#528](openai#528))
([068bddc](openai@068bddc))
* **request:** move default client options and URL validation
([openai#530](openai#530))
([211f056](openai@211f056))
* **request:** move file expansion and single-use stdin
([openai#526](openai#526))
([8be3c0b](openai@8be3c0b))
* **request:** move multipart encoding and owned uploads
([openai#524](openai#524))
([73f9a1f](openai@73f9a1f))
* **request:** move shared flag and stdin preparation
([openai#533](openai#533))
([8e64575](openai@8e64575))
* **request:** move stdin provenance and input policies
([openai#525](openai#525))
([ac5aa07](openai@ac5aa07))
* **request:** move streaming mode resolution
([openai#527](openai#527))
([64ae997](openai@64ae997))
* **request:** separate final encoding from feature hooks
([openai#531](openai#531))
([711596c](openai@711596c))
* separate generated API commands from handwritten CLI code
([openai#500](openai#500))
([d44fb85](openai@d44fb85))
* separate generated commands from CLI compatibility behavior
([openai#474](openai#474))
([08df3f6](openai@08df3f6))
* share literal request headers through internal/request
([openai#521](openai#521))
([a9f35b9](openai@a9f35b9))
* share output writing and error classification
([openai#506](openai#506))
([bce2ab8](openai@bce2ab8))
* share root request flags and mTLS configuration
([openai#523](openai#523))
([a718ab6](openai@a718ab6))
* share terminal color and presentation policy
([openai#508](openai#508))
([575d494](openai@575d494))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: openai-sdks[bot] <284451331+openai-sdks[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants