feat(identity): migrate the desktop app to ChatGPT - #131
Conversation
Add an opt-in shared app-server socket for Desktop and SSH clients
…llback-bundle-inputs Fix updater fallback bundle inputs
…y-cli-launch Simplify Codex CLI launch path checks
…ompat Fix launcher lock on Python without pidfd APIs
…rust Restore CLI trust boundary and Homebrew channel tracking
…grade Restore compatible CLI launch validation
…ace-navigation Restore Agent Workspaces in current settings navigation
Broadcast Linux query-cache-invalidate events to registered Electron windows so the avatar overlay refreshes settings immediately after changes in the main settings window. Validation: - node --test scripts/patch-linux-window-ui.test.js (385/385) - bash tests/scripts_smoke.sh - git diff --check HEAD^..HEAD
…-trust Fix Nix store CLI trust regression
…llback-output fix(browser): silence Aura allowlist fallback output
* Align watchdog and Nix Linux feature profile * Allow non-pin flake changes during rollout * Move watchdog Nix verification override to workflow
watchdog-v2-action: commit-source
Refreshed Codex.dmg SRI hash to sha256-Wiq5aJ9Lo4/LE1VlJG1covEk1Tkzagoyr823IEDSFGY= and synced codexVersion / electronVersion / native-module pins to the current upstream DMG. Verified all ChatGPT Desktop Nix package outputs against the refreshed DMG. [skip ci] Source-Main-SHA: 3a3caa7 Upstream-DMG-SHA256: 5a2ab9689f4ba38fcb135565246d5ca2f124d539336a0a32afcdb72040d21466 Co-authored-by: codex-dmg-hash-bot <actions@github.com>
Regenerate canonical reviewed source metadata inside the Nix release derivation after discarding caller-staged metadata. Derive the dirty flag from flake identity so public validation records a clean immutable revision while dirty local flakes remain marked dirty.
|
Too many files changed for review (630 files, 100 file limit). |
|
@coderabbitai approve pls |
|
✅ Action performedComments resolved and changes approved. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9ed3d36c6f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically 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 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| for private_helper in chatgpt-check-update chatgpt-update chatgpt-version; do | ||
| public_helper="${USER_BIN_DIR}/${private_helper}" | ||
| if [ -f "$public_helper" ] && [ ! -L "$public_helper" ] && | ||
| grep -Fqx 'XDG_DATA_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}"' "$public_helper" && | ||
| grep -Fqx "exec \"\${INSTALL_ROOT}/bin/${private_helper}\" \"\$@\"" "$public_helper"; then |
There was a problem hiding this comment.
Remove legacy user-local launch and timer files
The cleanup introduced here only considers already-new chatgpt-* helper names. When this script upgrades an existing user-local codex-app install, the state migration moves ~/.local/share/codex-app to ~/.local/share/chatgpt, but no code retires the old ~/.local/bin/codex-app, codex-app.desktop, or codex-app-update.{service,timer} files; those stale wrapper-owned entries continue pointing at the now-missing legacy tree, leaving upgraded users with a dead launcher/menu item and a weekly timer that fails until manually cleaned up.
Useful? React with 👍 / 👎.
| pr_url="$(gh pr list --repo "$GITHUB_REPOSITORY" --base main --head "$REFRESH_BRANCH" --state open --json url --jq '.[0].url // ""')" | ||
| if [ -z "$pr_url" ]; then | ||
| pr_url="$(gh pr create \ | ||
| --repo "$GITHUB_REPOSITORY" \ |
There was a problem hiding this comment.
Target the canonical refresh PR repository
This hash-refresh PR lookup/create path now targets --repo $GITHUB_REPOSITORY. In this checkout the repository policy requires the literal nisavid/chatgpt-linux for gh pr commands because GitHub CLI repository selection can otherwise follow the event or checkout repository; if this workflow is dispatched from a fork or copied checkout, the bot can reconcile the refresh PR in the wrong repository instead of the canonical maintenance repo. Use the canonical repo for these gh pr calls so refresh PR reconciliation cannot drift.
AGENTS.md reference: AGENTS.md:L89-L92
Useful? React with 👍 / 👎.
.agents/fork-sync-policy.toml.devcontainer/Dockerfile.devcontainer/devcontainer.json.github/labels.json.github/workflows/cachix.yml.github/workflows/ci.yml.github/workflows/codeql.yml.github/workflows/computer-use-sync-reminder.yml.github/workflows/contributor-pr-limit.yml.github/workflows/install-deps.yml.github/workflows/manage-labels.yml.github/workflows/official-dmg-build-app.yml.github/workflows/rust-clippy.yml.github/workflows/update-chatgpt-hash.yml.github/workflows/update-codex-hash.yml.github/workflows/updater.yml.github/workflows/verify-apple-dmg.yml.gitignoreCargo.tomlMakefilecomputer-use-linux/Cargo.tomlcomputer-use-linux/gnome-shell-extension/extension.jscomputer-use-linux/gnome-shell-extension/metadata.jsoncomputer-use-linux/src/abs_pointer.rscomputer-use-linux/src/atspi_tree.rscomputer-use-linux/src/authorization.rscomputer-use-linux/src/bin/codex-chrome-extension-host.rs→computer-use-linux/src/bin/chatgpt-chrome-extension-host.rscomputer-use-linux/src/bin/codex-computer-use-cosmic.rs→computer-use-linux/src/bin/chatgpt-computer-use-cosmic.rscomputer-use-linux/src/chrome_runtime.rscomputer-use-linux/src/cosmic_helper.rscomputer-use-linux/src/diagnostics.rscomputer-use-linux/src/gnome_extension.rscomputer-use-linux/src/lib.rscomputer-use-linux/src/main.rscomputer-use-linux/src/screenshot.rscomputer-use-linux/src/server.rscomputer-use-linux/src/windowing/backends/gnome.rscomputer-use-linux/src/windowing/backends/kwin.rscomputer-use-linux/src/windowing/backends/mod.rscomputer-use-linux/src/windowing/backends/niri.rscomputer-use-linux/src/windowing/mod.rscomputer-use-linux/src/windowing/registry.rscomputer-use-linux/src/ydotool.rsconfig.tomlcontrib/user-local-install/files/.config/systemd/user/chatgpt-update.servicecontrib/user-local-install/files/.config/systemd/user/chatgpt-update.timercontrib/user-local-install/files/.config/systemd/user/codex-app-update.servicecontrib/user-local-install/files/.config/systemd/user/codex-app-update.timercontrib/user-local-install/files/.local/bin/codex-app→contrib/user-local-install/files/.local/bin/chatgptcontrib/user-local-install/files/.local/bin/codex-app-check-update→contrib/user-local-install/files/.local/bin/chatgpt-check-updatecontrib/user-local-install/files/.local/bin/codex-app-update→contrib/user-local-install/files/.local/bin/chatgpt-updatecontrib/user-local-install/files/.local/bin/codex-app-version→contrib/user-local-install/files/.local/bin/chatgpt-versioncontrib/user-local-install/files/.local/share/applications/codex-app.desktop→contrib/user-local-install/files/.local/share/applications/chatgpt.desktopcontrib/user-local-install/files/share/common.shcontrib/user-local-install/install-user-local.shcomputer-use-linux/tests/authorization_process.rs.agents/skills/maintaining-codex-app-package/SKILL.md→.agents/skills/maintaining-chatgpt-package/SKILL.md.github/pull_request_template.mdAGENTS.mdCHANGELOG.mdCONTEXT.mdCONTRIBUTING.mdDESIGN.mdPRODUCT.mdREADME.mdSECURITY.mdcontrib/user-local-install/README.mddocs/README.mddocs/agents/domain.mddocs/agents/generated-and-runtime-notes.mddocs/agents/issue-tracker.mddocs/agents/repository-map.mddocs/agents/validation-playbook.mddocs/backlog.mddocs/github-cli-auth.mddocs/label-governance.mddocs/launcher-performance.mddocs/linux-chronicle-skysight.mddocs/maintainers/fork-divergences.mddocs/maintainers/fork-sync-ledger/2026-06-03-pr-95-upstream-60c62e3.mddocs/maintainers/fork-sync-ledger/2026-06-13-upstream-1d2bd26.mddocs/maintainers/fork-sync-ledger/2026-07-31-upstream-efe49176.mddocs/maintainers/fork-sync-policy.mddocs/maintainers/package-runtime-maintenance.mddocs/maintainers/readme-visual-capture.mddocs/maintainers/remote-mobile-host-boundary-review.mddocs/maintainers/research/generated-app-mutation-integrity-boundary.mddocs/maintainers/security-backlog.mddocs/maintainers/security-best-practices.mddocs/maintainers/threat-model.mddocs/plans/fresh-dmg-patch-architecture-refactor.mddocs/policies/agentic-maintenance.mddocs/port-architecture.mddocs/port-integrations-architecture.mddocs/record-and-replay-linux.mddocs/superpowers/plans/2026-05-25-readme-visual-capture.mddocs/upstream-dmg-acceptance.mdCargo.lockassets/chatgpt-linux.pngassets/codex.png→assets/chatgpt.pngSummary
Implements the decision-complete migration tracked in #119:
efe491761d9075341fe79f564631a6dd9aafd291while preserving upstream history and the local divergence contractchatgptthe canonical fork-owned package, launcher, desktop, updater, service, and XDG identity while preserving inherited Codex interfacescodex-appstate transactionally without shipping compatibility commands or service aliasesThe repository rename to
nisavid/chatgpt-linuxremains the final post-merge step required by #119.Review map
install.sh,launcher/state-migration.py, andupdater/.generated-app-mutation-broker, Node capability client, and integrity boundary.scripts/lib/package-common.sh,scripts/release-gate.sh,scripts/lib/package-provenance.py, andflake.nix.tests/scripts_smoke.shand the focused package, updater, broker, integration, and portable-ABI suites as the executable contract.Verification
ChatGPT.dmg, checked within 24 hours of the local build: SHA-25691fc4b809c2730b39e57d9adbc6b30c669ef074c900ca28c63a1e0b6fa41268c.make build-app DMG=ChatGPT.dmgwith isolated install, cache, state, config, and temporary directories at9ed3d36c6f81696dc518fec1c9c6bbc2cb659746— generated and accepted ChatGPT 26.803.81509 with zero blockers and zero warnings.TMPDIR=/dev/shm bash tests/release_gate_public_contract.sh— passed.TMPDIR=/dev/shm bash tests/portable_release_elf_dependencies.sh— passed.git diff --check— passed before the final task-owned commit.Follow-up
nisavid/chatgpt-linuxafter merge, as tracked in Chart the migration to ChatGPT for Linux #119.Checklist
ChatGPT.dmgand removes obsolete fallback code and tests from repaired drift surfaces.