Skip to content

fix: follow upstream native Linux open targets - #74

Draft
zhuziqi97 wants to merge 2 commits into
better-slop:mainfrom
zhuziqi97:codex/fix-native-open-targets
Draft

fix: follow upstream native Linux open targets#74
zhuziqi97 wants to merge 2 commits into
better-slop:mainfrom
zhuziqi97:codex/fix-native-open-targets

Conversation

@zhuziqi97

Copy link
Copy Markdown
Contributor

Upstream Codex app changes

Recent upstream Codex app releases changed the open-target implementation in the desktop main bundle.

At validation time, upstream/main was at c74e53d, and the prod appcast pointed to 26.730.61639 (build 6234). The upstream bundle now provides native Linux targets for VS Code, VS Code Insiders, Cursor, Zed, Terminal, and File Manager.

The upstream implementation also provides executable detection with .desktop fallbacks, .desktop launching through gio launch, $VISUAL/$EDITOR handling, nvim/vim/nano/less fallbacks, line/column location handling, and the get-target-commandtargetMetadatadetectedCommand dispatch chain.

This upstream implementation now covers the Linux open-target responsibilities previously implemented by this project.

Why issues #72 and #73 failed

Issues #72 and #73 were caused by the same obsolete local patch contract:

Both canary runs failed during the build phase with:

open-target-dispatcher contract changed: missing open target map

The legacy patch expected an older minified targets:[...map(...)] structure. Upstream changed the target registry and preferred-target metadata projection, so that expression no longer exists.

At the same time, the latest upstream bundle already contains native Linux target support. The failure was therefore caused by a stale local injection contract, not by missing Linux functionality in Codex. The two issues are the same incompatibility reproduced by consecutive prod releases.

Changes in this branch

  • Removed the legacy Linux open-target definitions.
  • Removed the target-map regex and map injection.
  • Removed the platform lookup patch and obsolete resolver helpers.
  • Removed the open-target-dispatcher contract and internal export.
  • Updated indexes for the remaining Linux window contracts.
  • Removed the obsolete open-target failure path from the canary reporter.
  • Deleted legacy open-target tests and the 26.616 fixture.
  • Updated canary issue/reporter examples.
  • Added no compatibility branch for older upstream layouts.
  • Added no minified-structure detector or CI-only open-target audit.

Test and validation results

Automated tests

npm test
  • Node tests: 114 passed
  • Rust tests: 58 passed
  • git diff --check: passed
  • No legacy open-target injection references remain

Full canary

xvfb-run -a node scripts/canary.mjs --json-output dist/upstream-canary.json
  • Prod 26.730.61639 / build 6234: passed
  • Beta 26.727.40816 / build 6066: passed
  • ok: true
  • failures: []

Local-only retirement audit

The official raw prod bundle and the repacked prod/beta Linux app.asar bundles were audited locally. All checks passed for:

  • Native Linux vscode, vscodeInsiders, cursor, zed, terminal, and fileManager targets.
  • Executable and .desktop editor fallbacks.
  • .desktop launching through gio launch.
  • $VISUAL/$EDITOR handling and terminal editor fallbacks.
  • Line/column location handling.
  • Target-command enrichment and dispatch.
  • Absence of legacy __codexLinux* open-target markers.
  • Successful application of all five remaining upstream patch contracts.

This audit is intentionally local-only because it depends on the exact upstream minified bundle. The generated evidence file is ignored and is not added to CI.

Review focus

Please verify that:

  1. The latest upstream native target implementation fully replaces the removed local injection.
  2. The remaining Linux window and Chrome contracts still apply correctly.
  3. The canary no longer depends on the removed open-target-dispatcher contract.
  4. No compatibility behavior for older upstream target layouts has been introduced.

@zhuziqi97
zhuziqi97 requested a review from cau1k August 5, 2026 08:39
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.

1 participant