Skip to content

feat(identity): migrate the desktop app to ChatGPT - #131

Merged
nisavid merged 867 commits into
mainfrom
nisavid/wayfinder-chatgpt-sync
Aug 13, 2026
Merged

feat(identity): migrate the desktop app to ChatGPT#131
nisavid merged 867 commits into
mainfrom
nisavid/wayfinder-chatgpt-sync

Conversation

@nisavid

@nisavid nisavid commented Aug 11, 2026

Copy link
Copy Markdown
Owner
DIFF CHANGES: 202582 additions, 25821 deletions FILES: 630 touched SHOWN: 100 of 630

Summary

Implements the decision-complete migration tracked in #119:

  • merges Linux-port upstream efe491761d9075341fe79f564631a6dd9aafd291 while preserving upstream history and the local divergence contract
  • makes chatgpt the canonical fork-owned package, launcher, desktop, updater, service, and XDG identity while preserving inherited Codex interfaces
  • migrates former codex-app state transactionally without shipping compatibility commands or service aliases
  • adapts the current official ChatGPT 26.803 app bundle, default-enabled port integrations, Browser/Chrome behavior, Computer Use authority, warm-start handling, and webview integrity
  • hardens generated-app mutation, offline native dependency staging, updater rebuild provenance, native-package contents, ABI compatibility, and public release attestation

The repository rename to nisavid/chatgpt-linux remains the final post-merge step required by #119.

Review map

  1. Start with the sync ledger and fork divergence contract.
  2. Review identity and state ownership through install.sh, launcher/state-migration.py, and updater/.
  3. Review generated-app integrity through the generated-app-mutation-broker, Node capability client, and integrity boundary.
  4. Review packaging and publication through scripts/lib/package-common.sh, scripts/release-gate.sh, scripts/lib/package-provenance.py, and flake.nix.
  5. Use tests/scripts_smoke.sh and the focused package, updater, broker, integration, and portable-ABI suites as the executable contract.

Verification

  • Cached official ChatGPT.dmg, checked within 24 hours of the local build: SHA-256 91fc4b809c2730b39e57d9adbc6b30c669ef074c900ca28c63a1e0b6fa41268c.
  • make build-app DMG=ChatGPT.dmg with isolated install, cache, state, config, and temporary directories at 9ed3d36c6f81696dc518fec1c9c6bbc2cb659746 — generated and accepted ChatGPT 26.803.81509 with zero blockers and zero warnings.
  • Official DMG Build App — passed against the current official DMG.
  • CI — passed Rust, Node, shell smoke, Nix output, public-release trust-path, Debian, RPM, and pacman package gates.
  • Updater, CodeQL, and Clippy code scanning — passed.
  • 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

  • The Codex Security scan is intentionally deferred until OpenAI grants Daybreak Access or fixes the guardrail that blocks its own scanner. This PR does not claim that scan passed.
  • Rename the repository to nisavid/chatgpt-linux after merge, as tracked in Chart the migration to ChatGPT for Linux #119.

Checklist

  • This pull request is ready for review and is no longer a draft.
  • I followed CONTRIBUTING.md, kept the change focused, edited source files rather than generated output, and excluded unrelated generated/runtime artifacts.
  • This targets the latest ChatGPT.dmg and removes obsolete fallback code and tests from repaired drift surfaces.
  • I added or updated relevant tests, ran the verification listed above, and confirmed that required CI checks pass.
  • I reviewed the final diff, addressed actionable findings, and reran the relevant gates.

ilysenko and others added 30 commits July 15, 2026 13:00
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
* Automate private feature upstream sync

* Limit sync workflow credentials

* Update private sync actions (#2)

* Update GitHub Actions to Node 24 runtimes (#3)

* fix(remote-mobile): follow 26.707.91948 runtime bundles
* 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>
@nisavid
nisavid marked this pull request as ready for review August 13, 2026 07:12
Copilot AI lite review requested due to automatic review settings August 13, 2026 07:12
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown

Too many files changed for review (630 files, 100 file limit).

Copilot AI 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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@nisavid

nisavid commented Aug 13, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai approve pls

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

@nisavid Approved. The stated verification and CI checks are complete.

✅ Action performed

Comments resolved and changes approved.

@nisavid
nisavid merged commit 19239c0 into main Aug 13, 2026
18 checks passed
@nisavid
nisavid deleted the nisavid/wayfinder-chatgpt-sync branch August 13, 2026 07:21

@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: 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".

Comment on lines +104 to +108
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

Comment on lines +176 to +179
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" \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 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 👍 / 👎.

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.