Skip to content

docs(upstream): disambiguate fork upstream terminology#76

Merged
nisavid merged 1 commit into
mainfrom
nisavid/disambiguate-upstream-docs
May 24, 2026
Merged

docs(upstream): disambiguate fork upstream terminology#76
nisavid merged 1 commit into
mainfrom
nisavid/disambiguate-upstream-docs

Conversation

@nisavid
Copy link
Copy Markdown
Owner

@nisavid nisavid commented May 24, 2026

Summary

Disambiguates upstream across repo policy, docs, workflow names, validation
tokens, updater source names, and fork-sync guidance so maintainers and agents
can distinguish this fork's Linux-port upstream from official OpenAI-distributed
artifacts and services.

Changes

  • Defines when to use Linux-port upstream, official OpenAI Codex DMG,
    official OpenAI app bundle, and OpenAI-hosted services, while allowing
    concise shorthand when surrounding context already removes ambiguity.
  • Renames official DMG validation surfaces away from ambiguous upstream names,
    preserving legacy aliases where needed.
  • Renames updater DMG source code and maintainer security-scan docs to avoid
    ambiguous upstream terminology.
  • Adds rename-aware fork-sync policy and durable policy-gap closeout guidance so
    future syncs do not drop Linux-port upstream edits to paths renamed in this
    fork.

Verification

  • Ralph review ran until clean; the latest cycle had no findings after
    CodeRabbit thread fixes were addressed and resolved.
  • git diff --check passed.
  • python -c 'import pathlib,tomllib; tomllib.loads(pathlib.Path(".agents/fork-sync-policy.toml").read_text())' passed.
  • bash -n passed for touched shell scripts.
  • node --test scripts/patch-linux-window-ui.test.js linux-features/read-aloud-mcp/test.js linux-features/remote-mobile-control/test.js linux-features/zed-opener/test.js passed.
  • bash tests/scripts_smoke.sh passed.
  • cargo check -p codex-app-updater passed.
  • cargo +1.95.0 test -p codex-app-updater --locked dmg_source passed: 6 dmg_source tests.
  • GitHub checks passed on the final head, including CodeRabbit approval,
    Greptile, CodeQL, Rust and Smoke Tests, updater checks, Official DMG Build
    App, Debian/RPM/pacman package builds, Nix package builds, and dependency
    install matrix jobs.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 24, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Repository-wide migration that: (1) defines "upstream" as the Linux-port remote, (2) treats the OpenAI-distributed artifact as the "official" Codex DMG, (3) updates fork-sync policy and agent skills for ledger/escalation/rename reconciliation, (4) renames CI/workflow envs and profiles to OFFICIAL_DMG/official-dmg-build, (5) migrates patch ciPolicy to required-official-dmg with engine/registry normalization, (6) rewires updater DMG fetching to dmg_source, and (7) aligns packaging, bundled-plugin staging, tests, and docs.

Changes

Official DMG Migration

Layer / File(s) Summary
Fork sync policy and agent skill
.agents/fork-sync-policy.toml, .agents/skills/maintaining-codex-app-package/SKILL.md, docs/maintainers/fork-sync-policy.md
Clarifies upstream as the Linux-port remote, adds rename_map, tightens uncertainty handling (operator escalation or durable follow-up), expands sync ledger/renamed-path reconciliation and policy-gap closeout procedures.
Repo terminology & maintainer docs
AGENTS.md, docs/maintainers/fork-divergences.md, docs/maintainers/threat-model.md, docs/agents/domain.md, docs/maintainers/package-runtime-maintenance.md
Replace ambiguous “upstream” wording with explicit Linux-port vs official-DMG terminology, adjust divergence/verification/rename maps, and update threat model/trust-boundary text to reference Official OpenAI Codex DMG.
README / user docs / changelog
README.md, CHANGELOG.md, docs/usage/*, SECURITY.md, contrib/*
User-facing docs updated to describe conversion from the official OpenAI Codex DMG, version derivation from CFBundleShortVersionString, and various wording alignments.
GitHub Actions & CI renames
.github/workflows/official-dmg-build-app.yml, .github/workflows/update-codex-hash.yml, .github/workflows/verify-apple-dmg.yml, .github/workflows/ci.yml, .github/workflows/computer-use-sync-reminder.yml
Workflows renamed and re-scoped to OFFICIAL_DMG variables and official-dmg-build profile; step labels, job names, env names, and trigger paths updated.
Local CI & container orchestration
scripts/ci-local.sh, scripts/ci/container-entrypoint.sh, scripts/ci/update-nix-hashes.sh, scripts/ci/validate-nix-pins.sh, scripts/ci/validate-patch-report.js
Introduce OFFICIAL_DMG_* variables (with UPSTREAM_* fallback), capture_official_dmg_metadata/run_official_dmg_job, SRI/hash flows use OFFICIAL_*; validate-patch-report defaults to official-dmg-build with legacy alias support.
Patch engine & registry
scripts/patches/engine.js, scripts/patches/registry.js, scripts/patches/core/*
Add REQUIRED_OFFICIAL_DMG, normalize legacy required-upstream → required-official-dmg, update status mapping so skipped-optional → failed-required for required-official-dmg, and update registry to select required patches for official profile.
Packaging and bundled plugins
scripts/lib/bundled-plugins.sh, scripts/build-deb.sh, scripts/build-rpm.sh, scripts/lib/package-common.sh, Makefile
Rename staging helpers to *_from_official_app, switch resource roots to official_app_resources, update packaging descriptions to reference official OpenAI Codex.dmg, add make target inspect-dmg and aliases.
Updater DMG wiring and docs
updater/src/main.rs, updater/src/app.rs, updater/src/dmg_source.rs, updater/src/builder.rs, updater/src/package_version.rs
Replace upstream module with dmg_source, route fetch/download to dmg_source, add remote_dmg_check_is_fresh fast-path, adjust logs/notifications to reference official DMG, and update doc comments/tests names.
Linux features & tests
scripts/lib/linux-features.sh, linux-features/*, tests/scripts_smoke.sh, scripts/patch-linux-window-ui.test.js
Export CODEX_OFFICIAL_APP_DIR alongside legacy CODEX_UPSTREAM_APP_DIR, update many feature READMEs/tests to use official-app terminology, change tests/fixtures and patch-report validations to official-dmg-build.
Inline messages, small scripts, and comments
assorted scripts and comment updates (contrib/*, scripts/*, packaging/*, scripts/patches/*)
Numerous message/comment wording tweaks to reference "configured git upstream", "official OpenAI DMG/app", and similar phrasing; no behavioral changes except refactoring names/aliases.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related issues

Possibly related PRs

"A rabbit hops through docs and scripts so spry,
renamed the upstream to official in a blink of an eye.
Ledger and CI now speak the same rhyme,
tests and patches hop in step — oh what a time!
🐇✨"

@nisavid nisavid marked this pull request as ready for review May 24, 2026 22:46
@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 24, 2026

Greptile Summary

This PR disambiguates all uses of the word "upstream" across the repository, splitting it into specific terms: Linux-port upstream, official OpenAI Codex DMG, official OpenAI app bundle, and OpenAI-hosted services. The refactor spans 73 files covering docs, CI workflows, shell scripts, JS patch infrastructure, and Rust updater code.

  • Renames the Rust module upstream.rsdmg_source.rs and updates all call sites; renames the CI workflow file from upstream-build-app.ymlofficial-dmg-build-app.yml with matching env-var and path changes.
  • Renames the JS validation token required-upstreamrequired-official-dmg and profile upstream-buildofficial-dmg-build, with backward-compatibility aliases in engine.js, validate-patch-report.js, and registry.js; similarly adds CODEX_UPSTREAM_APP_DIR as a backward-compat alias alongside the new CODEX_OFFICIAL_APP_DIR env var in linux-features.sh.

Confidence Score: 5/5

Safe to merge — all changes are terminology renames with properly maintained backward-compatibility aliases; no functional logic was altered.

The change is a systematic find-and-replace of ambiguous 'upstream' terminology across docs, CI, shell scripts, JS, and Rust. Every renamed token has a legacy alias or backward-compat shim (LEGACY_PROFILE_ALIASES, LEGACY_REQUIRED_UPSTREAM, dual CODEX_UPSTREAM_APP_DIR export, Rust module alias in main.rs). The previously flagged stale env-var name in the second read-aloud-mcp test was corrected. New tests explicitly cover the alias normalization paths.

No files require special attention.

Important Files Changed

Filename Overview
scripts/patches/engine.js Adds normalizeCiPolicy to canonicalize required-upstream → required-official-dmg at descriptor normalization time; ...descriptor spread ensures all other properties are preserved correctly.
scripts/ci/validate-patch-report.js Adds LEGACY_PROFILE_ALIASES map and resolves upstream-build → official-dmg-build after the known-profile check; default and usage string updated.
scripts/lib/linux-features.sh Sets both CODEX_OFFICIAL_APP_DIR and legacy CODEX_UPSTREAM_APP_DIR when invoking feature stage hooks, providing backward compatibility.
updater/src/dmg_source.rs Renamed from upstream.rs; no logic changes — only module-level doc comments updated.
updater/src/app.rs Import changed from upstream to dmg_source; function upstream_check_is_fresh renamed to remote_dmg_check_is_fresh; log strings updated; no logic changes.
.github/workflows/official-dmg-build-app.yml Renamed from upstream-build-app.yml; env vars renamed to OFFICIAL_DMG_URL / OFFICIAL_DMG_PATH; cache key prefix updated.
scripts/patches/registry.js Replaces local REQUIRED_UPSTREAM constant with imported REQUIRED_OFFICIAL_DMG from engine.js; requiredPatchNamesForProfile normalizes the legacy upstream-build alias.
tests/scripts_smoke.sh Updates helper function names, workflow path assertions, and log-string assertions to match renamed files/env vars.
scripts/patch-linux-window-ui.test.js Test names updated; new tests added for legacy alias normalization; validateReport calls updated to official-dmg-build profile.
linux-features/read-aloud-mcp/test.js Both occurrences of CODEX_UPSTREAM_APP_DIR updated to CODEX_OFFICIAL_APP_DIR, resolving the previously flagged stale env-var name.

Reviews (6): Last reviewed commit: "docs(upstream): disambiguate fork upstre..." | Re-trigger Greptile

@coderabbitai coderabbitai Bot added the github_actions Pull requests that update GitHub Actions code label May 24, 2026
@nisavid nisavid force-pushed the nisavid/disambiguate-upstream-docs branch from 0c7d6ae to 3b957d5 Compare May 24, 2026 22:54
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 10

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/official-dmg-build-app.yml:
- Around line 95-97: Replace the hardcoded DMG path string
"/tmp/codex-official-dmg-ci/Codex.dmg" with the OFFICIAL_DMG_PATH environment
variable everywhere it appears (e.g., in the YAML "path:" entries and any cache
or summary "key:" values); specifically update the occurrences referenced
(around the blocks using path:, key:, and
official-metadata.outputs.cache_segment) to use ${{ env.OFFICIAL_DMG_PATH }}
instead of the literal path so the workflow uses the defined OFFICIAL_DMG_PATH
consistently.

In `@docs/usage/build-and-run.md`:
- Around line 217-218: Replace the vague phrase "official app UI paths" with the
explicit upstream terminology "official OpenAI app bundle UI paths" in the
sentence that reads "in-app UI controls are opt-in because they patch official
app UI paths during app generation." Ensure the updated sentence reads something
like "in-app UI controls are opt-in because they patch official OpenAI app
bundle UI paths during app generation," preserving the original meaning and
punctuation.

In `@docs/usage/troubleshooting.md`:
- Line 65: Replace the phrase "official app UI paths" in the troubleshooting row
(the string starting with "| Computer Use plugin invisible in UI |") with the
explicit term "official OpenAI app bundle UI paths" to align with the project's
upstream terminology guidelines and keep the rest of the sentence unchanged.

In `@linux-features/conversation-mode/README.md`:
- Line 70: Replace the ambiguous phrase "official realtime voice" in the README
sentence with the repository’s prescribed upstream term "OpenAI-hosted services"
so the line reads using explicit upstream terminology; update the string literal
"official realtime voice" to "OpenAI-hosted services" in the README.md entry
where that sentence appears and ensure surrounding punctuation/capitalization
matches the document style.

In `@linux-features/copilot-reasoning-effort/README.md`:
- Line 6: Replace the ambiguous phrase "official app" with the canonical term
"official OpenAI app bundle" for the occurrences shown in the diff—e.g., the
sentence beginning "By default, official app Copilot-auth paths only read and
write" and the other occurrence around lines 49–50—so update those exact phrases
in the README to read "official OpenAI app bundle" to match upstream
terminology.

In `@linux-features/open-target-discovery/README.md`:
- Line 5: Replace the ambiguous phrase "official app" with the canonical term
"official OpenAI app bundle" in the README text (the line currently reading
"This feature augments the official app's Open menus with:"); update that exact
phrase so the markdown uses the explicit upstream terminology per policy.

In `@linux-features/remote-control-ui/README.md`:
- Line 3: Update the README sentence that currently reads "Default-on Linux UI
patches for official app `remote_control` and Codex mobile" to use the canonical
upstream terminology: replace "official app" with "official OpenAI app bundle"
so it reads "Default-on Linux UI patches for official OpenAI app bundle
`remote_control` and Codex mobile"; edit the README.md entry containing that
exact phrase to make this substitution and preserve the backticked symbol
`remote_control` and "Codex mobile".

In `@linux-features/remote-mobile-control/README.md`:
- Around line 3-5: Replace all informal occurrences of "official app" and
similar shorthand in the README text with the canonical upstream terms: use
"official OpenAI app bundle" when referring to the distributed application
artifact, and "OpenAI-hosted services" when referring to service behavior;
update every instance mentioned (including the initial paragraph and the other
locations called out) to these exact phrases and keep surrounding sentence
grammar intact.

In `@linux-features/zed-opener/README.md`:
- Around line 4-5: Replace the ambiguous phrase "official app" (and "official
app's") with the canonical term "official OpenAI app bundle" (or "official
OpenAI app bundle's" for possessive) in the README markdown occurrences shown in
the diff and the other occurrence around lines 47-48; update the two updated
lines that mention the Zed opener and the `path:line:column` argument builder to
use that exact wording so the docs consistently use the explicit upstream
terminology.

In `@SECURITY.md`:
- Around line 9-11: Replace the phrase "OpenAI Codex app" in SECURITY.md with
the canonical term "official OpenAI app bundle" to comply with the repo's
markdown terminology rules; update the sentence "Security guarantees made by
OpenAI services, OpenAI accounts, and the official OpenAI app bundle outside
this local conversion path are outside this repository's scope." ensuring
punctuation and spacing remain consistent with the surrounding text.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 32a96442-b62d-4b46-ac96-ed831f66bcad

📥 Commits

Reviewing files that changed from the base of the PR and between 474e702 and 0c7d6ae.

📒 Files selected for processing (73)
  • .agents/fork-sync-policy.toml
  • .agents/skills/maintaining-codex-app-package/SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/computer-use-sync-reminder.yml
  • .github/workflows/official-dmg-build-app.yml
  • .github/workflows/update-codex-hash.yml
  • .github/workflows/verify-apple-dmg.yml
  • AGENTS.md
  • CHANGELOG.md
  • Makefile
  • README.md
  • SECURITY.md
  • contrib/user-local-install/README.md
  • contrib/user-local-install/files/.local/bin/codex-app-check-update
  • contrib/user-local-install/files/.local/bin/codex-app-update
  • contrib/user-local-install/files/share/common.sh
  • docs/README.md
  • docs/agents/domain.md
  • docs/maintainers/fork-divergences.md
  • docs/maintainers/fork-sync-policy.md
  • docs/maintainers/package-runtime-maintenance.md
  • docs/maintainers/security-scan-2026-05-17-linux-port-upstream-sync.md
  • docs/maintainers/threat-model.md
  • docs/usage/build-and-run.md
  • docs/usage/troubleshooting.md
  • linux-features/README.md
  • linux-features/conversation-mode/README.md
  • linux-features/copilot-reasoning-effort/README.md
  • linux-features/open-target-discovery/README.md
  • linux-features/read-aloud-mcp/patches.js
  • linux-features/read-aloud-mcp/test.js
  • linux-features/remote-control-ui/README.md
  • linux-features/remote-mobile-control/README.md
  • linux-features/remote-mobile-control/test.js
  • linux-features/zed-opener/README.md
  • linux-features/zed-opener/test.js
  • packaging/linux/codex-app.desktop
  • scripts/build-deb.sh
  • scripts/build-rpm.sh
  • scripts/ci-local.sh
  • scripts/ci/container-entrypoint.sh
  • scripts/ci/update-nix-hashes.sh
  • scripts/ci/validate-nix-pins.sh
  • scripts/ci/validate-patch-report.js
  • scripts/install-deps.sh
  • scripts/lib/bundled-plugins.sh
  • scripts/lib/linux-features.sh
  • scripts/lib/package-common.sh
  • scripts/lib/webview-install.sh
  • scripts/patch-linux-window-ui.test.js
  • scripts/patches/computer-use.js
  • scripts/patches/core/README.md
  • scripts/patches/core/all-linux/extracted-app/package-metadata/patch.js
  • scripts/patches/core/all-linux/main-process/browser-integrations/patch.js
  • scripts/patches/core/all-linux/main-process/computer-use/patch.js
  • scripts/patches/core/all-linux/main-process/lifecycle/patch.js
  • scripts/patches/core/all-linux/main-process/remote-control/patch.js
  • scripts/patches/core/all-linux/main-process/window-shell/patch.js
  • scripts/patches/core/all-linux/webview/subagent-metadata/patch.js
  • scripts/patches/core/all-linux/webview/theme-and-sunset/patch.js
  • scripts/patches/engine.js
  • scripts/patches/keybinds-settings.js
  • scripts/patches/registry.js
  • scripts/patches/webview-assets.js
  • scripts/rebuild-candidate.sh
  • scripts/release-gate.sh
  • scripts/verify-apple-dmg.sh
  • tests/scripts_smoke.sh
  • updater/src/app.rs
  • updater/src/builder.rs
  • updater/src/dmg_source.rs
  • updater/src/main.rs
  • updater/src/package_version.rs

Comment thread .github/workflows/official-dmg-build-app.yml Outdated
Comment thread docs/usage/build-and-run.md Outdated
Comment thread docs/usage/troubleshooting.md Outdated
Comment thread linux-features/conversation-mode/README.md Outdated
Comment thread linux-features/copilot-reasoning-effort/README.md Outdated
Comment thread linux-features/open-target-discovery/README.md Outdated
Comment thread linux-features/remote-control-ui/README.md Outdated
Comment thread linux-features/zed-opener/README.md
Comment thread SECURITY.md
@nisavid nisavid force-pushed the nisavid/disambiguate-upstream-docs branch from 3b957d5 to 0549197 Compare May 24, 2026 23:02
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

♻️ Duplicate comments (3)
linux-features/open-target-discovery/README.md (1)

5-5: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle" instead of "official app".

Line 5 uses the shortened "official app" but should use the canonical "official OpenAI app bundle" per repository policy. Based on learnings: Use explicit upstream terminology: 'official OpenAI app bundle' refers to OpenAI-distributed artifacts.

📝 Suggested fix
-This feature augments the official app's Open menus with:
+This feature augments the official OpenAI app bundle's Open menus with:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/open-target-discovery/README.md` at line 5, Update the wording
that currently reads "official app" to use the canonical upstream term "official
OpenAI app bundle" in the sentence starting with "This feature augments the
official app's Open menus with:" so it becomes "This feature augments the
official OpenAI app bundle's Open menus with:"; search for that exact phrase in
README.md and replace it to comply with repository terminology.
linux-features/remote-control-ui/README.md (1)

3-3: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle" instead of "official app".

Line 3 uses the shortened "official app" but should use the canonical "official OpenAI app bundle" per repository policy. Based on learnings: Use explicit upstream terminology: 'official OpenAI app bundle' refers to OpenAI-distributed artifacts.

📝 Suggested fix
-Default-on Linux UI patches for official app `remote_control` and Codex mobile
+Default-on Linux UI patches for official OpenAI app bundle `remote_control` and Codex mobile
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/remote-control-ui/README.md` at line 3, Replace the phrase
"official app" with the canonical term "official OpenAI app bundle" in the
README entry that currently reads "Default-on Linux UI patches for official app
`remote_control` and Codex mobile"; update that line to read "Default-on Linux
UI patches for official OpenAI app bundle `remote_control` and Codex mobile" so
the upstream terminology is explicit (target the README.md line containing the
words `remote_control` and "official app").
SECURITY.md (1)

9-11: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle" for consistency.

Line 10 should say "official OpenAI app bundle" instead of "OpenAI Codex app" to match the repository's explicit terminology contract established in this PR and flagged in the previous review cycle.

📝 Suggested fix
 Security guarantees made by OpenAI services, OpenAI accounts, and the official
-OpenAI Codex app outside this local conversion path are outside this
+OpenAI app bundle outside this local conversion path are outside this
 repository's scope.

As per coding guidelines "Use explicit upstream terminology: ... 'official OpenAI app bundle' ..."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@SECURITY.md` around lines 9 - 11, Update the sentence in SECURITY.md that
currently reads "OpenAI Codex app" to use the repository's canonical terminology
"official OpenAI app bundle"; locate the exact phrase "OpenAI Codex app" in the
diff and replace it with "official OpenAI app bundle" so the sentence reads
"Security guarantees made by OpenAI services, OpenAI accounts, and the official
OpenAI app bundle outside this local conversion path are outside this
repository's scope."
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@linux-features/read-aloud-mcp/test.js`:
- Line 160: Update remaining references of the old constant to use the new one:
replace the CODEX_UPSTREAM_APP_DIR usage in
linux-features/read-aloud-mcp/test.js (the path.join(workspace, "Codex.app")
assignment) with CODEX_OFFICIAL_APP_DIR to match the change at line 160, and
also update the mention of CODEX_UPSTREAM_APP_DIR in linux-features/README.md
(around the documentation reference) to CODEX_OFFICIAL_APP_DIR so code and docs
are consistent; search for any other occurrences of CODEX_UPSTREAM_APP_DIR and
switch them to CODEX_OFFICIAL_APP_DIR, ensuring tests and docs reference the new
symbol.

In `@README.md`:
- Around line 220-223: The README currently uses the vague phrases "official app
surfaces" and "official app rollout-gated UI paths"; update both occurrences
(the block that lists `remote-control-ui`, `remote-mobile-control`,
`read-aloud`, `read-aloud-mcp`, and `conversation-mode` and the other occurrence
around line 406) to use the explicit wording "official OpenAI app bundle" (e.g.,
"official OpenAI app bundle surfaces" or "official OpenAI app bundle
rollout-gated UI paths") so the terminology matches the upstream contract.

In `@scripts/patches/computer-use.js`:
- Line 17: Update the inline comment that currently reads "checks in official
app webview code." to use the explicit upstream terminology required by policy:
change it to "checks in official OpenAI app bundle webview code." so the
repository consistently references the "official OpenAI app bundle" phrasing
(locate the comment string "official app webview code" in
scripts/patches/computer-use.js and replace it).

In `@scripts/patches/registry.js`:
- Around line 203-205: The early return currently hard-rejects any profile
except "official-dmg-build", which breaks callers using the legacy alias
"upstream-build"; update the conditional that checks the profile (the if
(profile !== "official-dmg-build") { return []; } block) to accept the legacy
alias as well (e.g. treat profile === "official-dmg-build" || profile ===
"upstream-build" as valid) or normalize profile to "official-dmg-build" when
profile === "upstream-build", so required-patch selection remains enforced for
both names.

---

Duplicate comments:
In `@linux-features/open-target-discovery/README.md`:
- Line 5: Update the wording that currently reads "official app" to use the
canonical upstream term "official OpenAI app bundle" in the sentence starting
with "This feature augments the official app's Open menus with:" so it becomes
"This feature augments the official OpenAI app bundle's Open menus with:";
search for that exact phrase in README.md and replace it to comply with
repository terminology.

In `@linux-features/remote-control-ui/README.md`:
- Line 3: Replace the phrase "official app" with the canonical term "official
OpenAI app bundle" in the README entry that currently reads "Default-on Linux UI
patches for official app `remote_control` and Codex mobile"; update that line to
read "Default-on Linux UI patches for official OpenAI app bundle
`remote_control` and Codex mobile" so the upstream terminology is explicit
(target the README.md line containing the words `remote_control` and "official
app").

In `@SECURITY.md`:
- Around line 9-11: Update the sentence in SECURITY.md that currently reads
"OpenAI Codex app" to use the repository's canonical terminology "official
OpenAI app bundle"; locate the exact phrase "OpenAI Codex app" in the diff and
replace it with "official OpenAI app bundle" so the sentence reads "Security
guarantees made by OpenAI services, OpenAI accounts, and the official OpenAI app
bundle outside this local conversion path are outside this repository's scope."
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4d8f7c24-9cc4-4eba-8880-6d8c3b94a11a

📥 Commits

Reviewing files that changed from the base of the PR and between 0c7d6ae and 3b957d5.

📒 Files selected for processing (73)
  • .agents/fork-sync-policy.toml
  • .agents/skills/maintaining-codex-app-package/SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/computer-use-sync-reminder.yml
  • .github/workflows/official-dmg-build-app.yml
  • .github/workflows/update-codex-hash.yml
  • .github/workflows/verify-apple-dmg.yml
  • AGENTS.md
  • CHANGELOG.md
  • Makefile
  • README.md
  • SECURITY.md
  • contrib/user-local-install/README.md
  • contrib/user-local-install/files/.local/bin/codex-app-check-update
  • contrib/user-local-install/files/.local/bin/codex-app-update
  • contrib/user-local-install/files/share/common.sh
  • docs/README.md
  • docs/agents/domain.md
  • docs/maintainers/fork-divergences.md
  • docs/maintainers/fork-sync-policy.md
  • docs/maintainers/package-runtime-maintenance.md
  • docs/maintainers/security-scan-2026-05-17-linux-port-upstream-sync.md
  • docs/maintainers/threat-model.md
  • docs/usage/build-and-run.md
  • docs/usage/troubleshooting.md
  • linux-features/README.md
  • linux-features/conversation-mode/README.md
  • linux-features/copilot-reasoning-effort/README.md
  • linux-features/open-target-discovery/README.md
  • linux-features/read-aloud-mcp/patches.js
  • linux-features/read-aloud-mcp/test.js
  • linux-features/remote-control-ui/README.md
  • linux-features/remote-mobile-control/README.md
  • linux-features/remote-mobile-control/test.js
  • linux-features/zed-opener/README.md
  • linux-features/zed-opener/test.js
  • packaging/linux/codex-app.desktop
  • scripts/build-deb.sh
  • scripts/build-rpm.sh
  • scripts/ci-local.sh
  • scripts/ci/container-entrypoint.sh
  • scripts/ci/update-nix-hashes.sh
  • scripts/ci/validate-nix-pins.sh
  • scripts/ci/validate-patch-report.js
  • scripts/install-deps.sh
  • scripts/lib/bundled-plugins.sh
  • scripts/lib/linux-features.sh
  • scripts/lib/package-common.sh
  • scripts/lib/webview-install.sh
  • scripts/patch-linux-window-ui.test.js
  • scripts/patches/computer-use.js
  • scripts/patches/core/README.md
  • scripts/patches/core/all-linux/extracted-app/package-metadata/patch.js
  • scripts/patches/core/all-linux/main-process/browser-integrations/patch.js
  • scripts/patches/core/all-linux/main-process/computer-use/patch.js
  • scripts/patches/core/all-linux/main-process/lifecycle/patch.js
  • scripts/patches/core/all-linux/main-process/remote-control/patch.js
  • scripts/patches/core/all-linux/main-process/window-shell/patch.js
  • scripts/patches/core/all-linux/webview/subagent-metadata/patch.js
  • scripts/patches/core/all-linux/webview/theme-and-sunset/patch.js
  • scripts/patches/engine.js
  • scripts/patches/keybinds-settings.js
  • scripts/patches/registry.js
  • scripts/patches/webview-assets.js
  • scripts/rebuild-candidate.sh
  • scripts/release-gate.sh
  • scripts/verify-apple-dmg.sh
  • tests/scripts_smoke.sh
  • updater/src/app.rs
  • updater/src/builder.rs
  • updater/src/dmg_source.rs
  • updater/src/main.rs
  • updater/src/package_version.rs

Comment thread linux-features/read-aloud-mcp/test.js
Comment thread README.md
Comment thread scripts/patches/computer-use.js Outdated
Comment thread scripts/patches/registry.js Outdated
@nisavid nisavid force-pushed the nisavid/disambiguate-upstream-docs branch from 0549197 to a6abdbe Compare May 24, 2026 23:09
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (8)
SECURITY.md (1)

9-11: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use the canonical bundle terminology as previously requested.

Lines 9-10 use "official OpenAI Codex app" instead of "official OpenAI app bundle" as flagged in the previous review and required by the coding guidelines.

📝 Suggested fix
 Security guarantees made by OpenAI services, OpenAI accounts, and the official
-OpenAI Codex app outside this local conversion path are outside this
+OpenAI app bundle outside this local conversion path are outside this
 repository's scope.

As per coding guidelines: "**/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'official OpenAI app bundle' ..."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@SECURITY.md` around lines 9 - 11, Update the wording in SECURITY.md to use
the canonical bundle terminology: replace the phrase "official OpenAI Codex app"
with "official OpenAI app bundle" (preserving surrounding sentence structure in
the block that currently reads "Security guarantees made by OpenAI services,
OpenAI accounts, and the official OpenAI Codex app outside this local conversion
path are outside this repository's scope.") so the file uses the required
upstream terminology.
linux-features/remote-control-ui/README.md (1)

3-3: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use the canonical terminology as previously requested.

This line still uses "official app" instead of "official OpenAI app bundle" as flagged in the previous review and required by the coding guidelines.

📝 Suggested fix
-Default-on Linux UI patches for official app `remote_control` and Codex mobile
+Default-on Linux UI patches for official OpenAI app bundle `remote_control` and Codex mobile
 surfaces.

As per coding guidelines: "Use explicit upstream terminology where it prevents ambiguity ... 'official OpenAI app bundle' ..."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/remote-control-ui/README.md` at line 3, Replace the
non-canonical phrase "official app" in the README line that currently reads
"Default-on Linux UI patches for official app `remote_control` and Codex mobile"
with the required terminology "official OpenAI app bundle" so the sentence
becomes "Default-on Linux UI patches for official OpenAI app bundle
`remote_control` and Codex mobile"; update any other occurrences of "official
app" in this file to the same canonical phrase to comply with the coding
guidelines.
linux-features/conversation-mode/README.md (1)

70-70: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Complete the terminology fix as previously requested.

Line 70 uses "official realtime voice" but the coding guidelines prescribe "OpenAI-hosted services" for service/account surfaces. The previous review requested this change; the current edit only went halfway from "upstream" to "official".

📝 Suggested fix
-This is intentionally separate from official realtime voice. It keeps the Linux
+This is intentionally separate from OpenAI-hosted services. It keeps the Linux
 feature thin and local while still giving the user one conversational channel:

As per coding guidelines: "**/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'OpenAI-hosted services' mean ... service/account surfaces."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/conversation-mode/README.md` at line 70, Replace the phrase
"official realtime voice" in the README sentence with the prescribed upstream
terminology "OpenAI-hosted services" so the line reads (conceptually) that this
is intentionally separate from OpenAI-hosted services; update the wording
wherever "official realtime voice" appears in
linux-features/conversation-mode/README.md to use "OpenAI-hosted services" for
service/account surfaces to satisfy the coding guideline.
linux-features/open-target-discovery/README.md (1)

5-5: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Consider using "official OpenAI app's" for consistency with explicit terminology guidelines.

While "official app's Open menus" is clearer than the previous "upstream Open menus," the coding guidelines emphasize using explicit upstream terminology. The phrase "official app's" could theoretically be ambiguous (which official app?). Consider "official OpenAI app's Open menus" to match the repository's preference for explicit naming.

As per coding guidelines: **/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'official OpenAI app bundle' ... mean the OpenAI-distributed macOS app artifact.

📝 Suggested wording
-This feature augments the official app's Open menus with:
+This feature augments the official OpenAI app's Open menus with:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/open-target-discovery/README.md` at line 5, Change the phrase
"official app's Open menus" to the explicit upstream terminology "official
OpenAI app's Open menus" in the README; locate the sentence that currently reads
"This feature augments the official app's Open menus with:" and replace it so
the wording matches the repository guideline for explicit upstream naming.
linux-features/copilot-reasoning-effort/README.md (2)

6-6: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle" instead of "official app."

The wording "official app Copilot-auth paths" should be "official OpenAI app bundle Copilot-auth paths" to match the explicit terminology required by the guidelines.

As per coding guidelines: **/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'official OpenAI app bundle' ... mean the OpenAI-distributed macOS app artifact, generated bundle behavior ...

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/copilot-reasoning-effort/README.md` at line 6, Replace the
ambiguous phrase "official app Copilot-auth paths" with the explicit terminology
"official OpenAI app bundle Copilot-auth paths" in the README.md line that
currently reads "By default, official app Copilot-auth paths only read and
write"; update that sentence to use "official OpenAI app bundle" wherever
"official app" appears to comply with the guidelines.

49-50: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle" instead of "official app."

The phrase "official app's minified bundle" should be "official OpenAI app bundle's minified bundle" to align with the repository's explicit terminology guidelines.

As per coding guidelines: **/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'official OpenAI app bundle' ... mean the OpenAI-distributed macOS app artifact, generated bundle behavior ...

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/copilot-reasoning-effort/README.md` around lines 49 - 50,
Update the README phrase to use the repository's explicit terminology: replace
"official app's minified bundle" with "official OpenAI app bundle's minified
bundle" in the sentence that starts "The patch is fail-soft. If the official
app's minified bundle shape changes," so the text reads "If the official OpenAI
app bundle's minified bundle shape changes," ensuring consistency with the repo
guidelines.
docs/usage/troubleshooting.md (1)

65-65: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "official OpenAI app bundle UI paths" for consistency with guidelines.

The change from "upstream UI paths" to "official app UI paths" is an improvement, but the previous review comment requested the more explicit term "official OpenAI app bundle UI paths" to align with the repository's upstream terminology guidelines.

As per coding guidelines: **/*.md: Use explicit upstream terminology where it prevents ambiguity: ... 'official OpenAI app bundle' ... mean the OpenAI-distributed ... generated bundle behavior ...

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usage/troubleshooting.md` at line 65, Update the wording that currently
reads "official app UI paths" to the explicit term "official OpenAI app bundle
UI paths" in the troubleshooting entry that references the env var
CODEX_LINUX_ENABLE_COMPUTER_USE_UI and the settings key
"codex-linux-computer-use-ui-enabled"; ensure the sentence keeps the same
structure and examples (the env var and settings.json path) but replaces the
ambiguous phrase with the exact upstream terminology "official OpenAI app bundle
UI paths" for consistency with the repository guidelines.
README.md (1)

220-223: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use explicit “official OpenAI app bundle” wording in both sentences.

These two phrases still use ambiguous “official app …” shorthand where the terminology contract requires explicit wording.

Suggested doc fix
-The `remote-control-ui`, `remote-mobile-control`, `read-aloud`,
-`read-aloud-mcp`, and `conversation-mode` feature modules are default-enabled
-Linux integration patches for official app surfaces and local runtime helpers.
+The `remote-control-ui`, `remote-mobile-control`, `read-aloud`,
+`read-aloud-mcp`, and `conversation-mode` feature modules are default-enabled
+Linux integration patches for official OpenAI app bundle surfaces and local runtime helpers.
-official app rollout-gated UI paths. Enable them for a build with:
+official OpenAI app bundle rollout-gated UI paths. Enable them for a build with:

As per coding guidelines: "Use explicit upstream terminology where it prevents ambiguity: ... official OpenAI app bundle ..."

Also applies to: 406-406

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 220 - 223, The wording in the README lines
referencing integration patches is ambiguous; update the two sentences that
mention "official app surfaces" (the sentence listing `remote-control-ui`,
`remote-mobile-control`, `read-aloud`, `read-aloud-mcp`, and
`conversation-mode`) to use the explicit phrase "official OpenAI app bundle"
instead of "official app surfaces" (also make the same replacement at the other
occurrence noted around the file, e.g., near line 406); ensure both instances
read something like "default-enabled Linux integration patches for official
OpenAI app bundle and local runtime helpers" so the terminology contract is
satisfied.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Line 36: The changelog uses ambiguous phrases like “official app”, “official
Electron app”, and “remote DMG”; update those occurrences (notably the bullets
referencing the new Linux features and the other listed lines) to use the repo’s
explicit upstream terminology—e.g., replace “official app” or “official Electron
app” with “official OpenAI app bundle”, replace “remote DMG” with “Official
OpenAI Codex DMG”, and use “OpenAI-hosted services” where appropriate; apply
these exact substitutions for the occurrences in the diff (the line containing
the new opt-in Linux features and the other referenced bullets at lines 78, 112,
169, 170, 180, 244, 250, 303) so wording is unambiguous and consistent with the
coding guidelines.

In `@docs/maintainers/package-runtime-maintenance.md`:
- Around line 143-144: Replace all shorthand phrases like "official app bundle",
"official DMG", and "official OpenAI macOS artifact" with the canonical terms
mandated by policy: use "official OpenAI app bundle" when referring to the app
bundle, "Official OpenAI Codex DMG" when referring to the DMG, and
"OpenAI-hosted services" for hosted services; update the sentence containing
"applies a Linux file-manager integration patch when the official app bundle
still matches the expected shape" and the other occurrences noted (the strings
"official app bundle", "official DMG", and "official OpenAI macOS artifact") to
the corresponding canonical phrases to ensure consistency with the documentation
guidelines.

In `@docs/usage/build-and-run.md`:
- Around line 363-366: Replace the ambiguous shorthand "official app version" /
"official app bundle" in the quoted text with the canonical phrase "official
OpenAI app bundle" (e.g., change "official app version such as `26.422.30944
(2080)` becomes package version `26.422.30944`" to use "official OpenAI app
bundle"); search the file for other instances of the same shorthand (the
occurrences around the current diff and the similar phrasing noted later) and
normalize them to "official OpenAI app bundle" to keep terminology consistent.

In `@linux-features/remote-mobile-control/README.md`:
- Around line 3-5: Update the wording in the README introduction to use the
canonical upstream terminology: replace the first occurrence of "official Codex
app main bundle" / "official app" with "official OpenAI app bundle" (e.g., edit
the sentence that currently reads "This default-on feature patches the official
Codex app main bundle..." to mention "official OpenAI app bundle" on first
reference), keeping subsequent shorter references if desired; ensure the file
README.md reflects the explicit phrase per the coding guideline.

In `@scripts/patches/keybinds-settings.js`:
- Line 290: Update the reason string value used for the patch-status message to
the canonical wording: replace the current "official app keyboard shortcuts
settings are present" with "official OpenAI app bundle keyboard shortcuts
settings are present" so the property reason on the relevant object clearly uses
the explicit upstream terminology; locate the object literal where reason:
"official app keyboard shortcuts settings are present" is defined and change the
string accordingly (ensure any surrounding punctuation/quoting remains valid).

---

Duplicate comments:
In `@docs/usage/troubleshooting.md`:
- Line 65: Update the wording that currently reads "official app UI paths" to
the explicit term "official OpenAI app bundle UI paths" in the troubleshooting
entry that references the env var CODEX_LINUX_ENABLE_COMPUTER_USE_UI and the
settings key "codex-linux-computer-use-ui-enabled"; ensure the sentence keeps
the same structure and examples (the env var and settings.json path) but
replaces the ambiguous phrase with the exact upstream terminology "official
OpenAI app bundle UI paths" for consistency with the repository guidelines.

In `@linux-features/conversation-mode/README.md`:
- Line 70: Replace the phrase "official realtime voice" in the README sentence
with the prescribed upstream terminology "OpenAI-hosted services" so the line
reads (conceptually) that this is intentionally separate from OpenAI-hosted
services; update the wording wherever "official realtime voice" appears in
linux-features/conversation-mode/README.md to use "OpenAI-hosted services" for
service/account surfaces to satisfy the coding guideline.

In `@linux-features/copilot-reasoning-effort/README.md`:
- Line 6: Replace the ambiguous phrase "official app Copilot-auth paths" with
the explicit terminology "official OpenAI app bundle Copilot-auth paths" in the
README.md line that currently reads "By default, official app Copilot-auth paths
only read and write"; update that sentence to use "official OpenAI app bundle"
wherever "official app" appears to comply with the guidelines.
- Around line 49-50: Update the README phrase to use the repository's explicit
terminology: replace "official app's minified bundle" with "official OpenAI app
bundle's minified bundle" in the sentence that starts "The patch is fail-soft.
If the official app's minified bundle shape changes," so the text reads "If the
official OpenAI app bundle's minified bundle shape changes," ensuring
consistency with the repo guidelines.

In `@linux-features/open-target-discovery/README.md`:
- Line 5: Change the phrase "official app's Open menus" to the explicit upstream
terminology "official OpenAI app's Open menus" in the README; locate the
sentence that currently reads "This feature augments the official app's Open
menus with:" and replace it so the wording matches the repository guideline for
explicit upstream naming.

In `@linux-features/remote-control-ui/README.md`:
- Line 3: Replace the non-canonical phrase "official app" in the README line
that currently reads "Default-on Linux UI patches for official app
`remote_control` and Codex mobile" with the required terminology "official
OpenAI app bundle" so the sentence becomes "Default-on Linux UI patches for
official OpenAI app bundle `remote_control` and Codex mobile"; update any other
occurrences of "official app" in this file to the same canonical phrase to
comply with the coding guidelines.

In `@README.md`:
- Around line 220-223: The wording in the README lines referencing integration
patches is ambiguous; update the two sentences that mention "official app
surfaces" (the sentence listing `remote-control-ui`, `remote-mobile-control`,
`read-aloud`, `read-aloud-mcp`, and `conversation-mode`) to use the explicit
phrase "official OpenAI app bundle" instead of "official app surfaces" (also
make the same replacement at the other occurrence noted around the file, e.g.,
near line 406); ensure both instances read something like "default-enabled Linux
integration patches for official OpenAI app bundle and local runtime helpers" so
the terminology contract is satisfied.

In `@SECURITY.md`:
- Around line 9-11: Update the wording in SECURITY.md to use the canonical
bundle terminology: replace the phrase "official OpenAI Codex app" with
"official OpenAI app bundle" (preserving surrounding sentence structure in the
block that currently reads "Security guarantees made by OpenAI services, OpenAI
accounts, and the official OpenAI Codex app outside this local conversion path
are outside this repository's scope.") so the file uses the required upstream
terminology.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 77cde6df-2e65-43db-b3f4-5dea3b3413cf

📥 Commits

Reviewing files that changed from the base of the PR and between 3b957d5 and 0549197.

📒 Files selected for processing (73)
  • .agents/fork-sync-policy.toml
  • .agents/skills/maintaining-codex-app-package/SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/computer-use-sync-reminder.yml
  • .github/workflows/official-dmg-build-app.yml
  • .github/workflows/update-codex-hash.yml
  • .github/workflows/verify-apple-dmg.yml
  • AGENTS.md
  • CHANGELOG.md
  • Makefile
  • README.md
  • SECURITY.md
  • contrib/user-local-install/README.md
  • contrib/user-local-install/files/.local/bin/codex-app-check-update
  • contrib/user-local-install/files/.local/bin/codex-app-update
  • contrib/user-local-install/files/share/common.sh
  • docs/README.md
  • docs/agents/domain.md
  • docs/maintainers/fork-divergences.md
  • docs/maintainers/fork-sync-policy.md
  • docs/maintainers/package-runtime-maintenance.md
  • docs/maintainers/security-scan-2026-05-17-linux-port-upstream-sync.md
  • docs/maintainers/threat-model.md
  • docs/usage/build-and-run.md
  • docs/usage/troubleshooting.md
  • linux-features/README.md
  • linux-features/conversation-mode/README.md
  • linux-features/copilot-reasoning-effort/README.md
  • linux-features/open-target-discovery/README.md
  • linux-features/read-aloud-mcp/patches.js
  • linux-features/read-aloud-mcp/test.js
  • linux-features/remote-control-ui/README.md
  • linux-features/remote-mobile-control/README.md
  • linux-features/remote-mobile-control/test.js
  • linux-features/zed-opener/README.md
  • linux-features/zed-opener/test.js
  • packaging/linux/codex-app.desktop
  • scripts/build-deb.sh
  • scripts/build-rpm.sh
  • scripts/ci-local.sh
  • scripts/ci/container-entrypoint.sh
  • scripts/ci/update-nix-hashes.sh
  • scripts/ci/validate-nix-pins.sh
  • scripts/ci/validate-patch-report.js
  • scripts/install-deps.sh
  • scripts/lib/bundled-plugins.sh
  • scripts/lib/linux-features.sh
  • scripts/lib/package-common.sh
  • scripts/lib/webview-install.sh
  • scripts/patch-linux-window-ui.test.js
  • scripts/patches/computer-use.js
  • scripts/patches/core/README.md
  • scripts/patches/core/all-linux/extracted-app/package-metadata/patch.js
  • scripts/patches/core/all-linux/main-process/browser-integrations/patch.js
  • scripts/patches/core/all-linux/main-process/computer-use/patch.js
  • scripts/patches/core/all-linux/main-process/lifecycle/patch.js
  • scripts/patches/core/all-linux/main-process/remote-control/patch.js
  • scripts/patches/core/all-linux/main-process/window-shell/patch.js
  • scripts/patches/core/all-linux/webview/subagent-metadata/patch.js
  • scripts/patches/core/all-linux/webview/theme-and-sunset/patch.js
  • scripts/patches/engine.js
  • scripts/patches/keybinds-settings.js
  • scripts/patches/registry.js
  • scripts/patches/webview-assets.js
  • scripts/rebuild-candidate.sh
  • scripts/release-gate.sh
  • scripts/verify-apple-dmg.sh
  • tests/scripts_smoke.sh
  • updater/src/app.rs
  • updater/src/builder.rs
  • updater/src/dmg_source.rs
  • updater/src/main.rs
  • updater/src/package_version.rs

Comment thread CHANGELOG.md
Comment thread docs/maintainers/package-runtime-maintenance.md
Comment thread docs/usage/build-and-run.md Outdated
Comment thread linux-features/remote-mobile-control/README.md
Comment thread scripts/patches/keybinds-settings.js Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (5)
docs/usage/troubleshooting.md (1)

65-65: 🛠️ Refactor suggestion | 🟠 Major | ⚡ Quick win

Use the canonical term "official OpenAI app bundle UI paths" for full consistency.

The wording "official app UI paths" is clearer than the previous "upstream UI paths", but the project's explicit terminology guideline requires "official OpenAI app bundle" to unambiguously refer to OpenAI-distributed artifacts.

📝 Suggested fix
-| Computer Use plugin invisible in UI | Confirm the UI patch is enabled: either build with `CODEX_LINUX_ENABLE_COMPUTER_USE_UI=1`, or set `"codex-linux-computer-use-ui-enabled": true` in `${XDG_CONFIG_HOME:-$HOME/.config}/codex-app/settings.json`, then remember account-side rollout can still hide official app UI paths. |
+| Computer Use plugin invisible in UI | Confirm the UI patch is enabled: either build with `CODEX_LINUX_ENABLE_COMPUTER_USE_UI=1`, or set `"codex-linux-computer-use-ui-enabled": true` in `${XDG_CONFIG_HOME:-$HOME/.config}/codex-app/settings.json`, then remember account-side rollout can still hide official OpenAI app bundle UI paths. |

Based on learnings: Use explicit upstream terminology: official OpenAI app bundle refers to OpenAI-distributed artifacts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/usage/troubleshooting.md` at line 65, Replace the phrase "official app
UI paths" with the canonical term "official OpenAI app bundle UI paths" in the
troubleshooting entry that mentions CODEX_LINUX_ENABLE_COMPUTER_USE_UI and the
"codex-linux-computer-use-ui-enabled" setting (the line referencing
${XDG_CONFIG_HOME:-$HOME/.config}/codex-app/settings.json), so the sentence
reads that account-side rollout can hide "official OpenAI app bundle UI paths".
scripts/patches/keybinds-settings.js (1)

290-290: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

Consider using the canonical term "official OpenAI app bundle keyboard shortcuts settings" for precision.

The wording "official app keyboard shortcuts settings" is clearer than the previous "upstream keyboard shortcuts settings", but the project's explicit terminology guideline asks for "official OpenAI app bundle" where it prevents ambiguity. Since this is an internal patch-status message with limited visibility, the incremental improvement may be acceptable, but full canonical terminology would be more precise.

📝 Suggested fix
-      reason: "official app keyboard shortcuts settings are present",
+      reason: "official OpenAI app bundle keyboard shortcuts settings are present",

Based on learnings: Use explicit upstream terminology: official OpenAI app bundle refers to OpenAI-distributed artifacts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/patches/keybinds-settings.js` at line 290, Update the string value
assigned to the reason property so it uses the canonical terminology: replace
"official app keyboard shortcuts settings are present" with "official OpenAI app
bundle keyboard shortcuts settings are present"; locate the object literal
containing the reason key in scripts/patches/keybinds-settings.js and change
only the phrasing (keep the property name reason and surrounding structure
intact).
linux-features/conversation-mode/README.md (1)

70-70: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use "OpenAI-hosted services" terminology for service surfaces.

Line 70 uses "official realtime voice," which remains ambiguous under this PR's terminology policy. The realtime voice capability is a service surface, so it should use the prescribed term "OpenAI-hosted services" instead of "official realtime voice."

📝 Suggested terminology fix
-This is intentionally separate from official realtime voice. It keeps the Linux
+This is intentionally separate from OpenAI-hosted realtime voice services. It keeps the Linux

Based on learnings: Use explicit upstream terminology to prevent ambiguity. 'OpenAI-hosted services' refer to OpenAI-distributed service/account surfaces.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/conversation-mode/README.md` at line 70, Replace the ambiguous
phrase "official realtime voice" in the README sentence with the prescribed term
"OpenAI-hosted services"; locate the exact string "official realtime voice" in
the conversation-mode README and substitute "OpenAI-hosted services" (match
capitalization and punctuation to fit the sentence), and scan the same document
for any other occurrences to update them consistently so all service-surface
references use the new terminology.
linux-features/copilot-reasoning-effort/README.md (1)

6-6: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use the canonical term "official OpenAI app bundle" instead of "official app."

At lines 6 and 49–50, the README uses the shortened "official app" where the explicit term "official OpenAI app bundle" is preferred for clarity and policy consistency in durable documentation.

Based on learnings: Use explicit upstream terminology—"official OpenAI app bundle" refers to OpenAI-distributed artifacts.

Also applies to: 49-50

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/copilot-reasoning-effort/README.md` at line 6, Replace the
shortened phrase "official app" with the canonical term "official OpenAI app
bundle" wherever it appears (notably the occurrence in the sentence "By default,
official app Copilot-auth paths only read and write" and the occurrences around
lines 49–50); search the README for all instances of "official app" and update
them to "official OpenAI app bundle" to ensure consistent, explicit upstream
terminology.
.github/workflows/official-dmg-build-app.yml (1)

95-95: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use OFFICIAL_DMG_PATH consistently across cache, build, and summary.

Line [95], Line [140], and Line [162] still hardcode the DMG path even though OFFICIAL_DMG_PATH is defined. This can silently drift and break the workflow if the env path is changed later.

Proposed fix
       - name: Restore cached official DMG
         id: dmg-cache
         uses: actions/cache@v5
         with:
-          path: /tmp/codex-official-dmg-ci/Codex.dmg
+          path: ${{ env.OFFICIAL_DMG_PATH }}
           key: official-dmg-${{ env.DMG_CACHE_SCHEMA_VERSION }}-${{ steps.official-metadata.outputs.cache_segment }}

       - name: Build app from official DMG
         run: |
           set -euo pipefail
           CODEX_PATCH_REPORT_JSON="$GITHUB_WORKSPACE/patch-report.json" \
-            make build-app DMG=/tmp/codex-official-dmg-ci/Codex.dmg
+            make build-app DMG="$OFFICIAL_DMG_PATH"
           node scripts/ci/validate-patch-report.js patch-report.json --profile official-dmg-build

       - name: Write build summary
         run: |
@@
-            echo "- Build command: \`make build-app DMG=/tmp/codex-official-dmg-ci/Codex.dmg\`"
+            echo "- Build command: \`make build-app DMG=$OFFICIAL_DMG_PATH\`"
           } >> "$GITHUB_STEP_SUMMARY"

Also applies to: 140-140, 162-162

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/official-dmg-build-app.yml at line 95, Replace the
hardcoded DMG path "/tmp/codex-official-dmg-ci/Codex.dmg" with the
OFFICIAL_DMG_PATH environment variable everywhere it is used (cache key/paths,
build output, and summary). Locate the occurrences around the cache, build and
summary steps (search for the literal path string and the keys that set or
reference the DMG) and change them to reference the workflow env variable
(OFFICIAL_DMG_PATH) using GitHub Actions variable syntax so the same value is
used consistently across the cache, build, and summary steps.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In @.github/workflows/official-dmg-build-app.yml:
- Line 95: Replace the hardcoded DMG path "/tmp/codex-official-dmg-ci/Codex.dmg"
with the OFFICIAL_DMG_PATH environment variable everywhere it is used (cache
key/paths, build output, and summary). Locate the occurrences around the cache,
build and summary steps (search for the literal path string and the keys that
set or reference the DMG) and change them to reference the workflow env variable
(OFFICIAL_DMG_PATH) using GitHub Actions variable syntax so the same value is
used consistently across the cache, build, and summary steps.

In `@docs/usage/troubleshooting.md`:
- Line 65: Replace the phrase "official app UI paths" with the canonical term
"official OpenAI app bundle UI paths" in the troubleshooting entry that mentions
CODEX_LINUX_ENABLE_COMPUTER_USE_UI and the "codex-linux-computer-use-ui-enabled"
setting (the line referencing
${XDG_CONFIG_HOME:-$HOME/.config}/codex-app/settings.json), so the sentence
reads that account-side rollout can hide "official OpenAI app bundle UI paths".

In `@linux-features/conversation-mode/README.md`:
- Line 70: Replace the ambiguous phrase "official realtime voice" in the README
sentence with the prescribed term "OpenAI-hosted services"; locate the exact
string "official realtime voice" in the conversation-mode README and substitute
"OpenAI-hosted services" (match capitalization and punctuation to fit the
sentence), and scan the same document for any other occurrences to update them
consistently so all service-surface references use the new terminology.

In `@linux-features/copilot-reasoning-effort/README.md`:
- Line 6: Replace the shortened phrase "official app" with the canonical term
"official OpenAI app bundle" wherever it appears (notably the occurrence in the
sentence "By default, official app Copilot-auth paths only read and write" and
the occurrences around lines 49–50); search the README for all instances of
"official app" and update them to "official OpenAI app bundle" to ensure
consistent, explicit upstream terminology.

In `@scripts/patches/keybinds-settings.js`:
- Line 290: Update the string value assigned to the reason property so it uses
the canonical terminology: replace "official app keyboard shortcuts settings are
present" with "official OpenAI app bundle keyboard shortcuts settings are
present"; locate the object literal containing the reason key in
scripts/patches/keybinds-settings.js and change only the phrasing (keep the
property name reason and surrounding structure intact).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: a2162308-dc33-4ed9-8fad-fcc8e2fa3a5d

📥 Commits

Reviewing files that changed from the base of the PR and between 0549197 and a6abdbe.

📒 Files selected for processing (73)
  • .agents/fork-sync-policy.toml
  • .agents/skills/maintaining-codex-app-package/SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/computer-use-sync-reminder.yml
  • .github/workflows/official-dmg-build-app.yml
  • .github/workflows/update-codex-hash.yml
  • .github/workflows/verify-apple-dmg.yml
  • AGENTS.md
  • CHANGELOG.md
  • Makefile
  • README.md
  • SECURITY.md
  • contrib/user-local-install/README.md
  • contrib/user-local-install/files/.local/bin/codex-app-check-update
  • contrib/user-local-install/files/.local/bin/codex-app-update
  • contrib/user-local-install/files/share/common.sh
  • docs/README.md
  • docs/agents/domain.md
  • docs/maintainers/fork-divergences.md
  • docs/maintainers/fork-sync-policy.md
  • docs/maintainers/package-runtime-maintenance.md
  • docs/maintainers/security-scan-2026-05-17-linux-port-upstream-sync.md
  • docs/maintainers/threat-model.md
  • docs/usage/build-and-run.md
  • docs/usage/troubleshooting.md
  • linux-features/README.md
  • linux-features/conversation-mode/README.md
  • linux-features/copilot-reasoning-effort/README.md
  • linux-features/open-target-discovery/README.md
  • linux-features/read-aloud-mcp/patches.js
  • linux-features/read-aloud-mcp/test.js
  • linux-features/remote-control-ui/README.md
  • linux-features/remote-mobile-control/README.md
  • linux-features/remote-mobile-control/test.js
  • linux-features/zed-opener/README.md
  • linux-features/zed-opener/test.js
  • packaging/linux/codex-app.desktop
  • scripts/build-deb.sh
  • scripts/build-rpm.sh
  • scripts/ci-local.sh
  • scripts/ci/container-entrypoint.sh
  • scripts/ci/update-nix-hashes.sh
  • scripts/ci/validate-nix-pins.sh
  • scripts/ci/validate-patch-report.js
  • scripts/install-deps.sh
  • scripts/lib/bundled-plugins.sh
  • scripts/lib/linux-features.sh
  • scripts/lib/package-common.sh
  • scripts/lib/webview-install.sh
  • scripts/patch-linux-window-ui.test.js
  • scripts/patches/computer-use.js
  • scripts/patches/core/README.md
  • scripts/patches/core/all-linux/extracted-app/package-metadata/patch.js
  • scripts/patches/core/all-linux/main-process/browser-integrations/patch.js
  • scripts/patches/core/all-linux/main-process/computer-use/patch.js
  • scripts/patches/core/all-linux/main-process/lifecycle/patch.js
  • scripts/patches/core/all-linux/main-process/remote-control/patch.js
  • scripts/patches/core/all-linux/main-process/window-shell/patch.js
  • scripts/patches/core/all-linux/webview/subagent-metadata/patch.js
  • scripts/patches/core/all-linux/webview/theme-and-sunset/patch.js
  • scripts/patches/engine.js
  • scripts/patches/keybinds-settings.js
  • scripts/patches/registry.js
  • scripts/patches/webview-assets.js
  • scripts/rebuild-candidate.sh
  • scripts/release-gate.sh
  • scripts/verify-apple-dmg.sh
  • tests/scripts_smoke.sh
  • updater/src/app.rs
  • updater/src/builder.rs
  • updater/src/dmg_source.rs
  • updater/src/main.rs
  • updater/src/package_version.rs

@nisavid nisavid force-pushed the nisavid/disambiguate-upstream-docs branch 2 times, most recently from 41b16f8 to b32c2bb Compare May 24, 2026 23:28
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
linux-features/zed-opener/README.md (1)

4-5: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use canonical “official OpenAI app bundle” wording to avoid ambiguity.

Please replace “official app’s” with “official OpenAI app bundle’s” in both locations for consistency with the terminology policy.

Based on learnings: Use explicit upstream terminology to prevent ambiguity; prefer “official OpenAI app bundle” for OpenAI-distributed app artifacts.

Also applies to: 47-48

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@linux-features/zed-opener/README.md` around lines 4 - 5, Replace the
ambiguous phrase "official app’s" with the canonical wording "official OpenAI
app bundle’s" in the README occurrences (both places referenced in the diff and
at lines ~47-48); update the two text instances so they read "official OpenAI
app bundle’s Zed opener block" and "official OpenAI app bundle’s
`path:line:column` argument builder" to match upstream terminology.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/lib/webview-install.sh`:
- Line 18: Update the inline comment that currently reads "The official app
relies on macOS vibrancy for the transparent effect;" to use the repo glossary
term "official OpenAI app bundle" instead of "official app"; locate that comment
in scripts/lib/webview-install.sh (search for the vibrancy/transparent effect
comment) and replace the phrase while preserving the rest of the comment wording
and punctuation.

In `@updater/src/main.rs`:
- Around line 16-17: Add explicit test evidence for the newly-enabled Unix
module by running the updater package tests and attaching the output or CI link:
run `cargo +1.95.0 test -p codex-app-updater --locked dmg_source` (or simply
`cargo +1.95.0 test -p codex-app-updater --locked` to run all tests) from the
repo root, capture the full stdout/stderr that shows the dmg_source unit tests
passing/failing, and upload that output or the CI job URL to the PR; ensure the
log clearly includes the `mod dmg_source` test names so reviewers can verify the
change enabled tests on Unix.

---

Duplicate comments:
In `@linux-features/zed-opener/README.md`:
- Around line 4-5: Replace the ambiguous phrase "official app’s" with the
canonical wording "official OpenAI app bundle’s" in the README occurrences (both
places referenced in the diff and at lines ~47-48); update the two text
instances so they read "official OpenAI app bundle’s Zed opener block" and
"official OpenAI app bundle’s `path:line:column` argument builder" to match
upstream terminology.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7ee12798-076f-456f-8b02-45791af905d6

📥 Commits

Reviewing files that changed from the base of the PR and between a6abdbe and 41b16f8.

📒 Files selected for processing (73)
  • .agents/fork-sync-policy.toml
  • .agents/skills/maintaining-codex-app-package/SKILL.md
  • .github/workflows/ci.yml
  • .github/workflows/computer-use-sync-reminder.yml
  • .github/workflows/official-dmg-build-app.yml
  • .github/workflows/update-codex-hash.yml
  • .github/workflows/verify-apple-dmg.yml
  • AGENTS.md
  • CHANGELOG.md
  • Makefile
  • README.md
  • SECURITY.md
  • contrib/user-local-install/README.md
  • contrib/user-local-install/files/.local/bin/codex-app-check-update
  • contrib/user-local-install/files/.local/bin/codex-app-update
  • contrib/user-local-install/files/share/common.sh
  • docs/README.md
  • docs/agents/domain.md
  • docs/maintainers/fork-divergences.md
  • docs/maintainers/fork-sync-policy.md
  • docs/maintainers/package-runtime-maintenance.md
  • docs/maintainers/security-scan-2026-05-17-linux-port-upstream-sync.md
  • docs/maintainers/threat-model.md
  • docs/usage/build-and-run.md
  • docs/usage/troubleshooting.md
  • linux-features/README.md
  • linux-features/conversation-mode/README.md
  • linux-features/copilot-reasoning-effort/README.md
  • linux-features/open-target-discovery/README.md
  • linux-features/read-aloud-mcp/patches.js
  • linux-features/read-aloud-mcp/test.js
  • linux-features/remote-control-ui/README.md
  • linux-features/remote-mobile-control/README.md
  • linux-features/remote-mobile-control/test.js
  • linux-features/zed-opener/README.md
  • linux-features/zed-opener/test.js
  • packaging/linux/codex-app.desktop
  • scripts/build-deb.sh
  • scripts/build-rpm.sh
  • scripts/ci-local.sh
  • scripts/ci/container-entrypoint.sh
  • scripts/ci/update-nix-hashes.sh
  • scripts/ci/validate-nix-pins.sh
  • scripts/ci/validate-patch-report.js
  • scripts/install-deps.sh
  • scripts/lib/bundled-plugins.sh
  • scripts/lib/linux-features.sh
  • scripts/lib/package-common.sh
  • scripts/lib/webview-install.sh
  • scripts/patch-linux-window-ui.test.js
  • scripts/patches/computer-use.js
  • scripts/patches/core/README.md
  • scripts/patches/core/all-linux/extracted-app/package-metadata/patch.js
  • scripts/patches/core/all-linux/main-process/browser-integrations/patch.js
  • scripts/patches/core/all-linux/main-process/computer-use/patch.js
  • scripts/patches/core/all-linux/main-process/lifecycle/patch.js
  • scripts/patches/core/all-linux/main-process/remote-control/patch.js
  • scripts/patches/core/all-linux/main-process/window-shell/patch.js
  • scripts/patches/core/all-linux/webview/subagent-metadata/patch.js
  • scripts/patches/core/all-linux/webview/theme-and-sunset/patch.js
  • scripts/patches/engine.js
  • scripts/patches/keybinds-settings.js
  • scripts/patches/registry.js
  • scripts/patches/webview-assets.js
  • scripts/rebuild-candidate.sh
  • scripts/release-gate.sh
  • scripts/verify-apple-dmg.sh
  • tests/scripts_smoke.sh
  • updater/src/app.rs
  • updater/src/builder.rs
  • updater/src/dmg_source.rs
  • updater/src/main.rs
  • updater/src/package_version.rs

Comment thread scripts/lib/webview-install.sh Outdated
Comment thread updater/src/main.rs
@nisavid nisavid force-pushed the nisavid/disambiguate-upstream-docs branch from b32c2bb to 4de15c9 Compare May 24, 2026 23:40
@nisavid nisavid merged commit 8c669b3 into main May 24, 2026
18 checks passed
@nisavid nisavid deleted the nisavid/disambiguate-upstream-docs branch May 24, 2026 23:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant