Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
03df6d6
fix(linux): bypass sunset gate and harden launcher startup
jonfry1175 May 6, 2026
30bdf22
fix(rpm): align Fedora 44 dependencies
pradigmaz May 6, 2026
7a9b818
Merge pull request #113 from pradigmaz/fix/fedora-44-rpm-deps
ilysenko May 6, 2026
55008cd
Add Hyprland window targeting backend
christadrian May 6, 2026
4f62e07
enhance(builder, scripts): add support for detecting and using Rust's…
Leay15 May 7, 2026
dd2eb5a
release(updater): bump version to 0.7.1 with documentation and lockfi…
Leay15 May 7, 2026
02e7298
chore(changelog): update for 0.7.1 with bug fix and test additions on…
Leay15 May 7, 2026
575d150
fix: harden Hyprland window targeting
ilysenko May 7, 2026
eaf363a
Merge pull request #114 from christadrian/hyprland-window-targeting
ilysenko May 7, 2026
1135d92
fix: narrow Linux sunset gate patch
ilysenko May 7, 2026
4d157e0
Merge pull request #112 from jonfry1175/fix/linux-update-required-lau…
ilysenko May 7, 2026
5df7ab4
fix(install): detect Linux dependency profiles from os-release
pradigmaz May 7, 2026
e7c7547
Merge pull request #116 from pradigmaz/fix/linux-distro-dependency-de…
ilysenko May 7, 2026
05ce6f7
Document workaround for noexec /tmp installs
May 7, 2026
0882a62
Merge pull request #117 from lifeguard999/fix-noexec-tmp
ilysenko May 7, 2026
5bb3398
fix: address updater cargo path review
ilysenko May 7, 2026
360745f
Merge pull request #115 from Leay15/fix/0.7.1-missing-cargo-path
ilysenko May 7, 2026
dda826a
Fix Fedora RPM bundled binary dependency scanning
ReOT20 May 7, 2026
35586c0
fix(nix): package Codex Desktop 26.506.21252
colonelpanic8 May 8, 2026
2df157e
fix(nix): tolerate missing Linux tray setting helper
colonelpanic8 May 8, 2026
bdcdeb3
fix(nix): patch Browser Use node_repl on NixOS
colonelpanic8 May 8, 2026
40bfd67
fix(launcher): sync bundled Browser Use marketplace metadata
colonelpanic8 May 8, 2026
e8afdb5
fix(nix): tolerate missing git origins source
colonelpanic8 May 8, 2026
f589ba3
fix(nix): refresh codex desktop payload hash
colonelpanic8 May 8, 2026
f7c3284
fix(nix): update Codex.dmg hash
actions-user May 8, 2026
e643c59
Merge pull request #120 from ReOT20/codex/fedora-rpm-dependency-filter
ilysenko May 8, 2026
643ed3f
Handle isAvailable computer-use gate
mtb-xt May 8, 2026
f193442
Add KWin window targeting backend
PinguuSS May 8, 2026
720078e
Merge pull request #122 from mtb-xt/codex/computer-use-isavailable-gate
ilysenko May 8, 2026
60875cf
Merge pull request #125 from PinguuSS/codex/add-kwin-window-backend
ilysenko May 8, 2026
3c21194
Merge main into refresh Nix package PR
ilysenko May 8, 2026
2b0abd3
Merge pull request #118 from colonelpanic8/codex/refresh-nix-package
ilysenko May 8, 2026
7c57394
ci(nix): refresh all fixed-output hashes
ilysenko May 8, 2026
0efdef7
Merge pull request #126 from ilysenko/codex/update-nix-hashes-workflow
ilysenko May 8, 2026
192cbe6
fix(ci): make Nix hash workflow valid YAML
ilysenko May 8, 2026
ecc14ec
fix(nix): update upstream Nix hashes
actions-user May 8, 2026
3a4d856
fix(installer): avoid false 7z version error logs
ilysenko May 8, 2026
0cb501d
fix(installer): keep Node runtime probes quiet
ilysenko May 8, 2026
c6fec39
Refactor ASAR patcher and validate required patches
ilysenko May 8, 2026
e7e7d04
Merge pull request #128 from ilysenko/codex/refactor-asar-patcher-val…
ilysenko May 8, 2026
87b99d8
Fix KWin window activation
PinguuSS May 8, 2026
e7c18e8
Merge pull request #129 from PinguuSS/fix/kwin-window-activation
ilysenko May 8, 2026
65af5fb
fix: find Bun-installed Codex CLI
moxw May 8, 2026
cee297c
Fix Browser Use site status allowlist patch
ilysenko May 8, 2026
f0599ec
enhance(computer-use-linux): add COSMIC Wayland window management ope…
Leay15 May 9, 2026
d5b3deb
enhance(windows): integrate COSMIC Wayland backend for window management
Leay15 May 9, 2026
5365369
enhance(windows): update server to include COSMIC Wayland backend sup…
Leay15 May 9, 2026
b506e91
enhance(diagnostics): integrate COSMIC Wayland backend checks and int…
Leay15 May 9, 2026
aea494d
enhance(computer-use-linux): add COSMIC helper module
Leay15 May 9, 2026
bec8293
enhance(computer-use-linux): sync bundled plugin cache and add COSMIC…
Leay15 May 9, 2026
64ed8a1
chore(computer-use-linux): bump version to 0.1.2 and update metadata …
Leay15 May 9, 2026
0238551
chore(computer-use-linux): bump version to 0.1.2-linux-alpha1 and add…
Leay15 May 9, 2026
38aeccf
style(codebase): apply consistent formatting across COSMIC Wayland-re…
Leay15 May 9, 2026
56ab13e
docs(AGENTS): update documentation to reflect COSMIC helper addition …
Leay15 May 9, 2026
16acb15
refactor(computer-use-linux): remove unused `COSMIC_BACKEND` constant…
Leay15 May 9, 2026
22addbe
Merge pull request #130 from moxw/support-bun-codex-cli
ilysenko May 9, 2026
59a2f3a
Merge pull request #133 from Leay15/feat/add-cosmic-computer-use-support
ilysenko May 9, 2026
8c799a4
refactor Linux Computer Use window backends
ilysenko May 9, 2026
124b448
Merge pull request #136 from ilysenko/codex/windowing-backend-refactor
ilysenko May 9, 2026
96d41ec
fix(nix): update upstream Nix hashes
actions-user May 9, 2026
ffbcb35
Scan apps bundle for Computer Use availability (#135)
mtb-xt May 9, 2026
6f76696
fix linux pet overlay input passthrough (#137)
MuQY1818 May 9, 2026
2087394
fix Linux explicit quit and stale runtime recovery (#138)
DhanushSantosh May 9, 2026
5db5e27
fix(nix): update upstream Nix hashes
actions-user May 9, 2026
95cadb2
feat(computer-use): add i3 window backend (#134)
moxw May 9, 2026
098e4ad
feat(chrome): add Linux native host
moxw May 9, 2026
0a99c2e
Skip empty window backend results
PinguuSS May 9, 2026
ee05746
fix(chrome): patch renamed status helpers
moxw May 9, 2026
58a32c6
fix(chrome): align Linux browser support
moxw May 9, 2026
a401c5f
Handle rounded window IDs from JSON clients
PinguuSS May 9, 2026
2c392bd
Merge pull request #140 from moxw/feature/chrome-plugin-rust-host
ilysenko May 9, 2026
c723755
fix Linux quit prompt bypass regression
DhanushSantosh May 9, 2026
9781872
Keep ydotool keyboard input on raw keycodes
PinguuSS May 9, 2026
f555e2c
harden Linux explicit quit drain path
DhanushSantosh May 9, 2026
828b728
Merge pull request #139 from PinguuSS/build/skip-empty-window-backends
ilysenko May 9, 2026
d298ff2
Merge pull request #141 from DhanushSantosh/codex/fix-linux-quit-prom…
ilysenko May 9, 2026
310e03d
Add opt-in Linux features framework
ilysenko May 9, 2026
e77817c
Merge pull request #143 from ilysenko/codex/linux-features-framework
ilysenko May 9, 2026
0923a08
fix Linux quit drain token patch
ilysenko May 9, 2026
4a90d17
Merge pull request #144 from ilysenko/codex/fix-invalid-quit-drain-token
ilysenko May 9, 2026
d4d008c
feat(features): add Zed opener module
moxw May 9, 2026
df2edeb
fix(nix): update upstream Nix hashes
actions-user May 9, 2026
d6ac778
Fix Linux patch drift for current Codex bundle
ilysenko May 9, 2026
e777307
Merge pull request #145 from ilysenko/codex/fix-linux-patch-drift
ilysenko May 9, 2026
0d87d6b
Document opt-in Linux features guidance
ilysenko May 9, 2026
8fed196
Move README intro above contribution note
ilysenko May 9, 2026
ca32c4f
Trim README details
ilysenko May 9, 2026
40b386f
Merge pull request #142 from moxw/feature/zed-opener-support
ilysenko May 9, 2026
0d2403a
fix(nix): update upstream Nix hashes
actions-user May 9, 2026
e528865
Fix Linux updater bridge and browser visibility
ilysenko May 10, 2026
e130454
Merge pull request #148 from ilysenko/codex/fix-linux-updater-bridge-…
ilysenko May 10, 2026
8c52fa4
Add WSLg rendering launch profile
ilysenko May 10, 2026
b4d137c
Merge pull request #149 from ilysenko/codex/wslg-rendering-mode
ilysenko May 10, 2026
6928452
fix(nix): update upstream Nix hashes
actions-user May 10, 2026
bdf9696
fix(chrome-plugin): ensure Chrome plugin auto-installs
moxw May 10, 2026
d06b5bd
fix(chrome-host): evict stale browser clients
moxw May 10, 2026
9d6a03a
Merge pull request #154 from moxw/fix/chrome-plugin-install-state
ilysenko May 10, 2026
ddbee9c
Merge remote-tracking branch 'origin/main' into fix/chrome-host-clien…
ilysenko May 10, 2026
67aee1f
Merge pull request #155 from moxw/fix/chrome-host-client-eviction
ilysenko May 10, 2026
e72e8bc
fix(nix): update upstream Nix hashes
actions-user May 10, 2026
2f8af05
fix(updater): stage linux features in update builder
ilysenko May 10, 2026
5c3cf8b
Merge pull request #157 from ilysenko/codex/fix-linux-features-update…
ilysenko May 10, 2026
e54bb9c
chore(sync): merge upstream main
nisavid May 10, 2026
fd034d1
fix(review): address upstream sync feedback
nisavid May 10, 2026
7bf2977
fix(updater): keep status refresh scoped
nisavid May 10, 2026
10d93da
test(ci): run Linux feature tests
nisavid May 10, 2026
9ea4036
fix(review): address follow-up feedback
nisavid May 10, 2026
9728e82
fix(review): resolve remaining thread findings
nisavid May 10, 2026
86b88ef
fix(review): address final review cleanup
nisavid May 10, 2026
7627bde
fix(review): resolve final bot findings
nisavid May 10, 2026
13c1e24
fix(review): address final merge blockers
nisavid May 10, 2026
6474945
Merge branch 'main' into codex/sync-upstream-2026-05-10
nisavid May 10, 2026
dd7afbc
merge: sync main into upstream sync branch
nisavid May 11, 2026
dc8609a
fix(review): address merge follow-up feedback
nisavid May 11, 2026
e786d9f
merge: sync latest main into upstream sync branch
nisavid May 11, 2026
9c21636
fix(review): address final socket feedback
nisavid May 11, 2026
f5ca3b8
fix(review): preserve primary action default
nisavid May 11, 2026
6a5266f
merge: sync main into upstream sync branch
nisavid May 11, 2026
7113746
fix(review): address unresolved PR feedback
nisavid May 11, 2026
ffd9945
fix(computer-use): validate press key before focus
nisavid May 11, 2026
0862e9d
fix(review): address patch status and ydotool timeout
nisavid May 11, 2026
7340bfe
fix(review): address cosmic and tray patch feedback
nisavid May 11, 2026
5604505
fix(ci): restore fedora install-deps validation
nisavid May 11, 2026
d720e93
fix(review): address final codex feedback
nisavid May 11, 2026
a07786e
fix(review): address follow-up PR feedback
nisavid May 11, 2026
0f97591
fix(security): sanitize generated keybind runtime literals
nisavid May 11, 2026
5dc5e58
fix(computer-use): drain ydotool output while waiting
nisavid May 11, 2026
e79638f
fix(review): address final copilot feedback
nisavid May 11, 2026
a45ff71
fix(review): align Fedora dnf5 fallback guidance
nisavid May 11, 2026
5ad6d3b
fix(review): reject unknown patch validation profiles
nisavid May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,25 @@ jobs:
bash -n contrib/user-local-install/files/.local/bin/codex-app-update
bash -n contrib/user-local-install/files/.local/bin/codex-app-version
bash -n contrib/user-local-install/files/share/common.sh
bash -n scripts/ci/update-nix-hashes.sh

- name: Check Node patcher syntax
run: |
set -euo pipefail
node --check scripts/patch-linux-window-ui.js
node --check scripts/patch-linux-window-ui.test.js
for file in scripts/patches/*.js; do
node --check "$file"
done
for file in linux-features/*/patch.js; do
[ -f "$file" ] || continue
node --check "$file"
done
feature_tests=(linux-features/*/test.js)
if [ -e "${feature_tests[0]}" ]; then
node --test --test-concurrency=1 "${feature_tests[@]}"
fi
node --check scripts/ci/validate-patch-report.js
Comment thread
coderabbitai[bot] marked this conversation as resolved.

Comment thread
nisavid marked this conversation as resolved.
- name: Check Rust formatting
run: cargo fmt --check
Expand Down
48 changes: 21 additions & 27 deletions .github/workflows/update-codex-hash.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Update Codex.dmg hash
name: Update Nix upstream hashes

on:
schedule:
- cron: '0 6 * * *'
- cron: '0 */2 * * *'
workflow_dispatch: {}

permissions:
Expand All @@ -12,66 +12,60 @@ permissions:
jobs:
update-hash:
runs-on: ubuntu-latest
env:
NIX_CONFIG: experimental-features = nix-command flakes
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6

- name: Download upstream Codex.dmg
run: curl -fL --retry 3 -o /tmp/Codex.dmg https://persistent.oaistatic.com/codex-app-prod/Codex.dmg
- name: Refresh Nix fixed-output hashes
run: scripts/ci/update-nix-hashes.sh

- name: Compute SRI hash and update flake.nix
- name: Commit refreshed hashes
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail

NEW_HASH=$(nix hash file --sri --type sha256 /tmp/Codex.dmg)
echo "Upstream hash: $NEW_HASH"

if ! [[ "$NEW_HASH" =~ ^sha256-[A-Za-z0-9+/=]{44}$ ]]; then
echo "Refusing to proceed: computed hash '$NEW_HASH' is not a valid SRI sha256." >&2
exit 1
fi

CURRENT_HASH=$(sed -nE 's/.*hash = "(sha256-[^"]+)".*/\1/p' flake.nix | head -n 1)
echo "Current hash: $CURRENT_HASH"

if [ "$NEW_HASH" = "$CURRENT_HASH" ]; then
echo "Hash unchanged, nothing to do."
if git diff --quiet -- flake.nix; then
echo "Nix hashes unchanged, nothing to do."
exit 0
fi

sed -i "s|hash = \"sha256-[^\"]*\";|hash = \"$NEW_HASH\";|" flake.nix
CODEX_DMG_HASH="$(scripts/ci/update-nix-hashes.sh read-flake-hash 'codexDmg = pkgs.fetchurl {' 'hash = ')"
PAYLOAD_HASH="$(scripts/ci/update-nix-hashes.sh read-flake-hash 'codexDesktopPayload = pkgs.stdenv.mkDerivation {' 'outputHash = ')"

git config user.name "codex-dmg-hash-bot"
git config user.email "actions@github.com"
BRANCH="bot/update-codex-dmg-hash"
git fetch origin "$BRANCH:refs/remotes/origin/$BRANCH" || true
git checkout -B "$BRANCH"
git add flake.nix
git commit -m "fix(nix): update Codex.dmg hash

Upstream binary changed; refreshed SRI hash to $NEW_HASH.

[skip ci]"
git commit \
-m "fix(nix): update upstream Nix hashes" \
-m "Refreshed Codex.dmg SRI hash to $CODEX_DMG_HASH." \
-m "Refreshed codexDesktopPayload recursive outputHash to $PAYLOAD_HASH." \
-m "[skip ci]"
git push --force-with-lease origin "$BRANCH"

PR_BODY="Upstream binary changed; refreshed SRI hash to \`$NEW_HASH\`.
PR_BODY="Refreshed Codex.dmg SRI hash to \`$CODEX_DMG_HASH\`.

Refreshed codexDesktopPayload recursive outputHash to \`$PAYLOAD_HASH\`.

This scheduled workflow opens a PR for maintainer review instead of pushing directly to main."

PR_NUMBER="$(gh pr list --repo nisavid/codex-app-linux --base main --head "$BRANCH" --state open --json number --jq '.[0].number // empty')"
if [ -n "$PR_NUMBER" ]; then
gh pr edit "$PR_NUMBER" \
--repo nisavid/codex-app-linux \
--title "fix(nix): update Codex.dmg hash" \
--title "fix(nix): update upstream Nix hashes" \
--body "$PR_BODY"
else
gh pr create \
--repo nisavid/codex-app-linux \
--base main \
--head "$BRANCH" \
--title "fix(nix): update Codex.dmg hash" \
--title "fix(nix): update upstream Nix hashes" \
--body "$PR_BODY"
fi
6 changes: 5 additions & 1 deletion .github/workflows/upstream-build-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,11 @@ jobs:
JSON

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

- name: Upload upstream DMG metadata artifact
uses: actions/upload-artifact@v7
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ bin/codex-*
target/
dist/
dist-next/
linux-features/features.json
.idea/
.claude/
/.codex
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Treat this file as always-loaded agent policy. Keep detailed package recipes, ru
- Linux package templates, maintainer scripts, desktop entry, service unit, packaged runtime helper: `packaging/linux/`
- Rust updater service and CLI: `updater/`
- Updater crate version and versioning policy: `updater/Cargo.toml` and
`docs/maintainers/package-runtime-maintenance.md` (current version: `0.7.0`)
`docs/maintainers/package-runtime-maintenance.md` (current version: `0.7.1`)
- User-facing overview and install guidance: `README.md`
- Webview server design decision and acceptance criteria: `docs/webview-server-evaluation.md`
- Fork-specific contracts and upstream-sync review inventory: `docs/maintainers/fork-divergences.md`
Expand Down
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).

## [Unreleased]

## [0.7.1] - 2026-05-06

### Fixed

- The Chrome native-messaging host now evicts stale browser clients when a newer Codex browser client connects, preventing old Node REPL sessions from repeatedly reattaching CDP and driving extension service-worker CPU.
- The bundled Chrome plugin is now auto-installed during app startup, matching Browser Use, so the plugin page no longer falls back to an install button after restart when the Linux native host is already staged.
- Local auto-update rebuilds and package builds now find the Rust toolchain reliably when `cargo` is installed via `rustup` under `~/.cargo/bin`, even if the `codex-app-updater` user service or packaging scripts inherit a reduced `PATH`.

### Added

- Regression coverage for the build-environment fix: updater path construction now has a unit test for `~/.cargo/bin`, and packaging helpers resolve `cargo` through the same fallback path used by Linux Computer Use staging.

## [0.7.0] - 2026-05-04

### Added
Expand Down
Loading