Skip to content

docs(cli): keep Homebrew picker setup on first run - #367

Merged
saioai merged 3 commits into
mainfrom
codex/homebrew-picker-setup
Oct 4, 2026
Merged

saioai merged 3 commits into
mainfrom
codex/homebrew-picker-setup

Conversation

@saioai

@saioai saioai commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Homebrew users already receive picker shortcuts through first-run or explicit setup. This documents that behavior and guards against adding cask setup hooks, which would introduce an extra profile-writing lifecycle.

What changes

  • Documents that Homebrew install, upgrade, and uninstall leave shell profiles and picker preferences alone.
  • Keeps setup on the first eligible interactive openai run, with existing opt-outs and explicit setup available.
  • Extends the release configuration check to reject Homebrew lifecycle hooks.

Commands

No new commands or flags. After installation, run openai in an eligible interactive shell, then open a new terminal to load the shortcut. Automatic zsh setup still requires an exported absolute ZDOTDIR; explicit setup remains available.

Code

Only documentation and the existing release configuration test change relative to main. The release configuration, runtime, dependencies, and workflows match main.

Tested

On macOS arm64, 41 first-run and 16 public setup/help process checks passed without skips. The release guard passes and rejects the previous hook configuration. Independent adversarial review found no remaining issue.

Verified GoReleaser 2.15.4 generated synthetic macOS archives and a cask with the existing binary, completions, and manual. Homebrew 7.0.1 loaded it without warnings in normal and strict/developer modes; the previous cask failed the strict check. No actual Homebrew installation or user profile edits were performed. Codex code review reported no major issues and security review found no issues on the current head. CI passed on d9af203: 20 successful checks, three administrative skips, and both Castiron statuses passed.

Demo

No visible behavior change relative to main. Existing first-run setup is preserved; this PR adds documentation and a regression guard, so no new UI demo is needed.

saioai commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 4, 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-04T06:43:17.482196Z d9af203 Draft marked ready
🔒 Security Review ✅ Completed 2026-10-04T06:44:02.974689Z d9af203 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.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Castiron custom code

Evaluated main: bae10ccb79bde2bacb142c387e7b31539913313a.

✅ No new custom-code files detected.

6 mixed files remain; 0 existing customizations changed.

Compared bae10ccb79bd → d9af20344e10. Generated baselines verified.

6 existing customizations unchanged
  • pkg/cmd/adminorganizationcertificate.go
  • pkg/cmd/audiovoice.go
  • pkg/cmd/image.go
  • scripts/castiron/README.md
  • scripts/castiron/custom_code_report.py
  • scripts/castiron/test_custom_code_report.py

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 37183595344 --repo openai/openai-cli \
  --name castiron-custom-code-37183595344-1 --dir /tmp/castiron-custom-code-37183595344-1
git apply --stat /tmp/castiron-custom-code-37183595344-1/custom-code.patch
cat /tmp/castiron-custom-code-37183595344-1/custom-code.patch

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

git fetch --no-tags origin bae10ccb79bde2bacb142c387e7b31539913313a d9af20344e10e09cd77d93a656cd0586059dee15
python3 scripts/castiron/custom_code_report.py report \
  --base bae10ccb79bde2bacb142c387e7b31539913313a \
  --head d9af20344e10e09cd77d93a656cd0586059dee15 --fetch --require-head-hash --public \
  --out /tmp/castiron-custom-code-d9af20344e10
cat /tmp/castiron-custom-code-d9af20344e10/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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f2a094d013

ℹ️ 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".

Comment thread .goreleaser.yml Outdated
@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: f2a094d013

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 commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@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: 7597c4062c

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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7597c4062c

ℹ️ 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".

Comment thread .goreleaser.yml Outdated
@saioai saioai changed the title Set up picker shortcuts during Homebrew installation docs(cli): keep Homebrew picker setup on first run Oct 4, 2026

saioai commented Oct 4, 2026

Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: d9af20344e

ℹ️ 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: d9af20344e

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 4, 2026 06:42
@saioai
saioai requested a review from a team as a code owner October 4, 2026 06:42

@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 d9af203. No blocking findings. The docs correctly describe first-run setup and its existing eligibility and opt-out rules. The release test checks the real YAML for pre/post cask hooks, alongside the existing artifact checks. The change stays small and fits the current design.

I reviewed all three changed files, surrounding setup code, and earlier review replies. Hosted checks pass for this head. I did not rerun local tests, GoReleaser generation, or a native Homebrew installation.

@saioai
saioai added this pull request to the merge queue Oct 4, 2026
Merged via the queue into main with commit fbe7e46 Oct 4, 2026
29 checks passed
@saioai
saioai deleted the codex/homebrew-picker-setup branch October 4, 2026 07:16
@openai-sdks openai-sdks Bot mentioned this pull request Oct 4, 2026
pedrobastosribeiro pushed a commit to pedrobastosribeiro/openai-cli that referenced this pull request Oct 5, 2026
Automated Release PR
---


##
[1.37.0](openai/openai-cli@v1.36.0...v1.37.0)
(2026-10-04)


### Features

* **cli:** include fish picker shortcuts in Linux packages
([openai#361](openai#361))
([bae10cc](openai@bae10cc))


### Documentation

* **cli:** keep Homebrew picker setup on first run
([openai#367](openai#367))
([fbe7e46](openai@fbe7e46))

---
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>
Tmwakalasya pushed a commit to Tmwakalasya/openai-cli that referenced this pull request Oct 19, 2026
…openai#438)

Existing image compatibility checks still expected cleared prompts and
one Kitty frame per image.
This updates those checks for retained drafts and chunked image output.

### What changes

- Check retained prompts after generation, printing, cancellation, and
reopening.
- Keep legacy draft migration, exact requests, saved bytes, and terminal
cleanup assertions.
- Check authentication recovery without automatically retrying
generation.
- Reassemble Kitty chunks before checking image counts and pixels.
- Reject incomplete frames, invalid chunk sizes, malformed headers, and
invalid base64.
- Preserve separate capture files for case names containing periods.
- Require exact shell-setup receipts on stderr while keeping stdout
empty.

### Commands

No CLI commands or flags change. Existing checks use synthetic local
responses and temporary settings.

```sh
python3 -I -B -m unittest discover -s scripts -p test_terminal_images.py
python3 -I -B scripts/check-image-picker-integration.py /path/to/openai /tmp/image-integration
python3 -I -B scripts/check-image-picker-reuse.py /path/to/openai /tmp/image-reuse
python3 -I -B scripts/check-image-picker-native.py /path/to/openai /tmp/image-protocol
```

### Code

The existing scripts share Kitty parsing and picker synchronization
helpers.
Runtime packages, generated commands, dependencies, and startup wiring
stay unchanged.

### Tested

macOS ARM64, Go 1.26.9: 413 focused test and subtest results passed.
These cover partial saves, cancellation, large images, model discovery,
preferences, loading, snapshots, and font capacity.
The corrected checkers passed 162 synthetic process and PTY cases.
The old checkers failed on retained drafts and valid Kitty chunks from
the same main binary.
The corrected parser accepted all 12 captured protocol cases and passed
35 independent adversarial probes.
Two Python unit tests passed. Two additional CLI sessions verified
separate capture files for dotted case names.
Temporary-profile setup passed in Bash 3.2 and zsh. Fish was
unavailable.
Bash 3.2 used ordinary-completion fallback; zsh registered its picker
hook.
Independent review, CI, and automated code and security reviews passed
at `b8c0d09`.
CI includes native setup checks on macOS and Windows, with skipped cases
recorded separately.
Native Windows, Linux, WSL, SSH/tmux, and named graphical-terminal
coverage remain incomplete.
Private PTYs establish process and protocol behavior, not native
graphical appearance.

### Demo

No product appearance changes. This PR repairs synthetic compatibility
checks, so it does not add a visual demo.

<!-- compatibility-parent: openai#277 -->
<!-- compatibility-parent: openai#291 -->
<!-- compatibility-parent: openai#293 -->
<!-- compatibility-parent: openai#294 -->
<!-- compatibility-parent: openai#296 -->
<!-- compatibility-parent: openai#297 -->
<!-- compatibility-parent: openai#302 -->
<!-- compatibility-parent: openai#318 -->
<!-- compatibility-parent: openai#325 -->
<!-- compatibility-parent: openai#342 -->
<!-- compatibility-parent: openai#357 -->
<!-- compatibility-parent: openai#358 -->
<!-- compatibility-parent: openai#359 -->
<!-- compatibility-parent: openai#360 -->
<!-- compatibility-parent: openai#361 -->
<!-- compatibility-parent: openai#367 -->
<!-- compatibility-parent: openai#368 -->
<!-- compatibility-parent: openai#369 -->
<!-- compatibility-parent: openai#370 -->
<!-- compatibility-parent: openai#377 -->
<!-- compatibility-parent: openai#381 -->
<!-- compatibility-parent: openai#383 -->
<!-- compatibility-parent: openai#394 -->

<!-- codex-thread: 01a131fd-9aab-7e73-8988-52a0bbd0412d -->
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