Commit Graph

230 Commits

Author SHA1 Message Date
delta-cloud-208e
752a2625bb release: Gemini CLI v0.33.1 (6 patches) 2026-03-15 03:02:17 +00:00
delta-cloud-208e
7317595c2f fix: add onboarding_skip + auth_conflict_disable to v2.1.76 (28 targets)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 10:40:10 +00:00
delta-cloud-208e
092f956d5b fix: add onboarding_skip patch to v2.1.76 cli.js (27th target)
Onboarding wizard (theme selection, welcome screen) was triggering on
fresh installs and after version updates because hasCompletedOnboarding
or theme was missing from user config. Patched to always skip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 10:29:33 +00:00
delta-cloud-208e
81b4046c2f release: Claude Code v2.1.76 (26 patches) 2026-03-14 06:00:39 +00:00
delta-cloud-208e
c9439a9909 release: Gemini CLI v0.33.1 (6 patches) 2026-03-14 03:04:13 +00:00
delta-cloud-208e
5525f6009a chore: change codex default reasoning effort from high to xhigh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 22:39:55 +00:00
delta-cloud-208e
d602c99b20 fix: fhq_async_disable patch — $ in function name $v1 broke \w+ regex
The Statsig gate check function $v1() has a dollar sign in its name,
which \w+ doesn't match. Changed to [a-zA-Z0-9_$]+ in both patcher
and validator. Re-patched v2.1.75 cli.js — now 26/26 GREEN.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:51:39 +00:00
delta-cloud-208e
e21b65e515 release: Claude Code v2.1.75 (25 patches) 2026-03-13 20:41:02 +00:00
delta-cloud-208e
5ddf29ab12 release: Gemini CLI v0.33.1 (6 patches) 2026-03-13 20:11:43 +00:00
delta-cloud-208e
073cb7b18d feat(codex): auto-update to v0.114.0
Binary: 0.111.0 -> 0.114.0
Config synced from claude_code_patcher.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:11:36 +00:00
delta-cloud-208e
4bb4019909 release: Claude Code v2.1.75 (25 patches) 2026-03-13 18:06:19 +00:00
delta-cloud-208e
df264a42ed fix(codex): remove unused import stat
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:57:18 +00:00
delta-cloud-208e
daaa4e4b54 release: Claude Code v2.1.74 (25 patches) 2026-03-13 00:00:22 +00:00
delta-cloud-208e
a31ccd07f7 release: Claude Code v2.1.74 (25 patches) 2026-03-12 06:01:08 +00:00
delta-cloud-208e
95530b3e8b release: Claude Code v2.1.73 (25 patches) 2026-03-12 00:06:46 +00:00
delta-cloud-208e
3d2c79e1be release: Claude Code v2.1.72 (25 patches) 2026-03-11 00:06:13 +00:00
delta-cloud-208e
acd21cbcf0 fix(codex): model_catalog_json pointed to /var/root for all users
Root cause: generate_config_toml() used os.path.expanduser("~") which
always returns root's home under sudo. Every user's config.toml had
model_catalog_json = "/var/root/.codex/model_catalog.json" → Permission denied.

Fix: pass home_dir to generate_config_toml() so each user gets their own path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:38:00 +00:00
delta-cloud-208e
c8c56b58b7 fix(codex): force chown+chmod on all user .codex dirs after install
Previous chown was unreliable — stat-based owner detection, missing
chmod, SUDO_USER edge cases. Now: simple loop over /Users/* (macOS)
or /home/* (Linux), chown -R + chmod -R u+rwX for each.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:34:22 +00:00
delta-cloud-208e
2a585ec758 fix(codex): clean broken config.toml before patching + fix macOS user discovery
- Delete config.toml with double-quoted keys bug before regenerating
- Replace pwd.getpwall() with /Users/* scan on macOS (Directory Services unreliable)
- Proper chown via stat of home directory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:31:13 +00:00
delta-cloud-208e
1f827cc9d8 fix(codex): replace pwd.getpwall() with directory scan for macOS
macOS Directory Services makes pwd.getpwall() unreliable — regular users
may not be returned. Now scans /Users/* directly on macOS, /home/* on Linux.
Also fixes chown to use actual directory ownership.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:28:10 +00:00
delta-cloud-208e
b27c0cd65e fix(codex): fix permission denied for non-root users
- chown -R ~/.codex/ to actual user after patching (sudo creates as root)
- Detect SUDO_USER for the invoking user
- Iterate /Users/*/.codex (macOS) and /home/*/.codex (Linux) to fix all

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:24:07 +00:00
delta-cloud-208e
495ce916b3 fix(codex): fix TOML parser double-quoting section keys + add macOS trust paths
- Minimal TOML parser (Python < 3.11 fallback) now strips quotes from section
  keys like [projects."/home"] — prevents double-quoting on re-parse
- Add /Users and /var/root to trust_paths on macOS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:58:17 +00:00
delta-cloud-208e
ab6be896bd fix(codex): patch all users, not just root — add --all flag and fix macOS UID threshold
- Install script now runs patcher with --all to patch every user's ~/.codex/config.toml
- Fix list_users() UID threshold: macOS starts at 500, Linux at 1000
- Fix file ownership: chown config files to the actual user after patching

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:54:43 +00:00
delta-cloud-208e
128ec80ed0 fix(codex): macOS compatibility for install/update/uninstall scripts
- Replace grep -oP (Perl regex) with portable sed — fixes "grep: invalid option -- P" on macOS
- Add sedi() wrapper for cross-platform sed -i (BSD vs GNU)
- Detect macOS via uname and use apple-darwin binary suffix instead of linux-musl
- Add is_native_binary() helper: checks both ELF (Linux) and Mach-O (macOS)
- macOS env vars: use launchctl setenv + /etc/codex-env.sh + ~/.zshrc source line
- Linux env vars: keep /etc/environment + /etc/profile.d/ as before
- Wrapper script uses dynamic ENV_FILE path instead of hardcoded /etc/profile.d/
- Fix SUDO_USER handling for correct ~/.zshrc path when run via sudo
- Uninstaller: also remove .codex-bin, /etc/codex-env.sh, launchctl vars, rc file entries
- Uninstaller: scan /Users/* on macOS instead of /home/*
- Fix CRLF line endings in ucodex_uninstall.sh

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:45:41 +00:00
delta-cloud-208e
c253494ae6 release: Claude Code v2.1.72 (25 patches) 2026-03-10 06:02:20 +00:00
delta-cloud-208e
dda909b4cc fix(gemini,qwen): replace test prompt with version check in verify step
gemini -p / qwen -p crashes with "setRawMode EIO" when stdin is not
a TTY (running from sudo bash script.sh). Verification now uses
--version instead — fast, reliable, no TTY needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:05:45 +00:00
delta-cloud-208e
f8d1213440 fix(gemini): macOS compatibility + settings for all users
macOS fixes:
- readlink -f -> portable resolve_path (realpath/manual)
- sed -i -> sed -i '' on BSD
- /etc/environment -> /etc/profile sourcing on macOS
- timeout -> gtimeout fallback
- mkdir -p /etc/profile.d on macOS

General fixes:
- Dynamic GEMINI_BIN detection (not hardcoded /usr/local/bin)
- Settings configured for both root AND sudo caller
- Wrapper path and env_file as parameters (not globals)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 11:03:23 +00:00
delta-cloud-208e
089f6e0be5 fix(codex): create wrapper before patcher runs
Patcher uses `which codex` to find binary. After migrating
codex -> .codex-bin, wrapper must exist before Step 2 (patcher)
or patcher fails with "Codex CLI not found".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:59:45 +00:00
delta-cloud-208e
deb1c2cfd2 fix(codex): drop Python 3.11 requirement, auto-install python3
- tomllib fallback: try tomllib (3.11+) -> tomli -> minimal parser
- Works with Python 3.8+ (Ubuntu 20.04, Debian 11, etc.)
- Auto-install python3 if not found (like Gemini/Qwen scripts)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:58:16 +00:00
delta-cloud-208e
d37772d67c fix: wrapper scripts for all CLIs — env vars work immediately without source
Problem: `sudo bash install.sh` runs in child process, `export` inside it
never reaches the user's current shell. /etc/environment and /etc/profile.d/
only work for NEW sessions. So `codex`/`gemini`/`qwen` fail with
"Missing environment variable" right after install.

Solution: wrapper scripts that auto-source env file before exec'ing binary.
- codex: /usr/local/bin/codex (wrapper) -> /usr/local/bin/.codex-bin (real)
- gemini: /usr/local/bin/gemini (wrapper) -> node .../dist/index.js
- qwen: /usr/local/bin/qwen (wrapper) -> node .../dist/index.js

Works immediately in ANY shell, no manual `source` needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:51:56 +00:00
delta-cloud-208e
be048ee873 fix: audit fixes across all install/update scripts
- codex/ucodex_update.sh: fix ${NC} → ${RESET} (crashed with set -u), fix CRLF
- gemini/ugemini_install.sh: read API_KEY/BASE_URL from config instead of hardcoded, fix "source ~/.bashrc" → "source /etc/profile.d/gemini-cli.sh"
- qwen/uqwen_install.sh: read API_KEY/BASE_URL from config instead of hardcoded

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:43:06 +00:00
delta-cloud-208e
77cde5d012 fix(codex): rewrite install script as self-contained for curl pipe usage
- Script no longer depends on local update-codex.sh or SCRIPT_DIR files
- Downloads Codex binary directly from GitHub releases
- Downloads patcher + config from gitea repo
- Sets env vars system-wide (/etc/environment + /etc/profile.d/)
- Proper error handling with set -euo pipefail

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:40:39 +00:00
delta-cloud-208e
638742c8ab fix(qwen): system-wide env vars via /etc/environment + /etc/profile.d/
Same pattern as codex and gemini:
- Write QWEN_API_KEY + QWEN_BASE_URL to /etc/environment (all users)
- Create /etc/profile.d/qwen-code.sh for login shell export
- Update script now also sets env vars (was missing)
- Fix CRLF line endings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:37:39 +00:00
delta-cloud-208e
8dd87dcab3 fix(gemini): system-wide env vars via /etc/environment + /etc/profile.d/
Install and update scripts now:
- Write GEMINI_API_KEY + GOOGLE_GEMINI_BASE_URL to /etc/environment (all users)
- Create /etc/profile.d/gemini-cli.sh for login shell export (all users)
- Export for current session
- Update script now also sets env vars (was missing entirely)
- Removed per-user ~/.bashrc approach — system-wide is more reliable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:35:51 +00:00
delta-cloud-208e
b7c72793fe fix(codex): system-wide env vars via /etc/environment + /etc/profile.d/
- Write OPENAI_API_KEY and OPENAI_BASE_URL to /etc/environment (all users)
- Create /etc/profile.d/codex-env.sh for login shell export (all users)
- Export for current session too
- Removes per-user ~/.bashrc approach — system-wide is more reliable

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:33:46 +00:00
delta-cloud-208e
3b81f61192 fix(codex): set OPENAI_API_KEY in shell profile + current session
Install/update scripts now:
- Export env vars for current session (fixes "Missing OPENAI_API_KEY")
- Write to ~/.bashrc or ~/.zshrc for persistence
- Handle sudo (detect real user via SUDO_USER)
- Remove stale entries before writing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:32:20 +00:00
delta-cloud-208e
b5b7025e2e docs(gemini): update README — 6 → 13 patches, 3.x models, full target table
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:28:17 +00:00
delta-cloud-208e
cc97606c38 feat(gemini): add Target 10-13 — patch model defaults, UI, compression
- Target 10: override DEFAULT_GEMINI_MODEL/FLASH/LITE/AUTO in models.js
- Target 11: fix hardcoded model names in ModelDialog.js
- Target 12: fix compression config aliases in chatCompressionService.js
- Target 13: fix example model name in AgentConfigDialog.js

Covers all 16+ locations where gemini-2.5 was used as fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:46:50 +00:00
delta-cloud-208e
4734cead32 feat(codex): add gpt-5.3 to model catalog and config
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 09:02:20 +00:00
delta-cloud-208e
0e5564732b fix(codex): model_catalog_json with correct Codex internal format
Previous attempt used OpenAI API format (bare array of {id, object}).
Codex expects ModelsResponse format: {"models": [{slug, display_name,
visibility, shell_type, supported_reasoning_levels, ...}]}.

Format reverse-engineered from codex-rs/core/models.json in official repo.
All 4 models (gpt-5.4, gpt-5.3-codex-spark, gpt-5.3-codex, gpt-5.2-codex)
now appear in interactive model picker.

Cleanup logic detects old bare-array format and replaces automatically.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:58:33 +00:00
delta-cloud-208e
60703fc7db fix(codex): auto-cleanup broken model_catalog_json on install/update
All scripts now detect and fix leftover damage from previous installs:
- Remove model_catalog_json from config.toml (crashes Codex on startup)
- Delete stale model_catalog.json file
- Detect broken TOML with dotted key bug
Both PS1 scripts and Python patcher handle cleanup before patching.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:50:33 +00:00
delta-cloud-208e
fa07058917 fix(codex): remove model_catalog_json — wrong format crashed Codex
model_catalog_json expects internal Codex ModelsResponse format with
complex ModelInfo structs (slug, display_name, visibility, shell_type,
supported_reasoning_levels, etc.), not simple OpenAI API format.
Removed from all configs to restore working state.

env_key = "OPENAI_API_KEY" fix is preserved (fixes 401 Unauthorized).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:48:31 +00:00
delta-cloud-208e
416720ae51 fix(codex): add env_key to custom provider + model_catalog_json for picker
- Add env_key = "OPENAI_API_KEY" to [model_providers.custom] in PS1 fallback
  templates (fixes 401 Unauthorized on machines without Python 3.11+)
- Add model_catalog_json config + model_catalog.json file generation
  (fixes empty model picker — all 4 models now visible in interactive mode)
- Both fixes applied in: codex_patcher.py, ucodex_install.ps1, ucodex_update.ps1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:43:25 +00:00
delta-cloud-208e
b829db3e93 fix: add auth headers to all Linux .sh gitea downloads
- gemini/ugemini_install.sh: CURL_AUTH was defined but never used, fixed
- gemini/ugemini_update.sh: added GITEA_TOKEN + auth header
- qwen/uqwen_install.sh: use GITEA_TOKEN (was already defined but unused)
- qwen/uqwen_update.sh: added GITEA_TOKEN + auth header

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:34:31 +00:00
delta-cloud-208e
aa2cec7647 fix(codex): write config to ~/.codex/ not %APPDATA%\codex\
Codex CLI reads config from %USERPROFILE%\.codex\config.toml
but PowerShell fallback was writing to %APPDATA%\codex\config.toml.
Old broken config remained in ~/.codex/ causing TOML parse errors.

- Fix config path: $env:APPDATA\codex → $env:USERPROFILE\.codex
- Add cleanup step to remove broken config before patching
- Remove old config before writing new one

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:31:56 +00:00
delta-cloud-208e
e4da4bdbb0 fix: TOML dotted key bug + PowerShell fallback for all Windows scripts
- codex: add [notice.model_migrations] with quoted keys to prevent
  Codex from writing unquoted dotted keys (gpt-5.4 → gpt-5 → 4)
  which causes "invalid type: map, expected a string" TOML error
- codex_patcher.py: add toml_key() to quote keys with dots,
  handle broken TOML gracefully in read_toml()
- claude install: remove unnecessary Python requirement
- claude update: rewrite as standalone (no git clone dependency)
- gemini update: add Python check with fallback, auth headers
- qwen install: add PowerShell fallback, auth headers, no exit on no Python
- qwen update: add Python check with fallback, auth headers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:26:52 +00:00
delta-cloud-208e
99c4c0bee6 fix(codex): add PowerShell fallback when Python is missing
On Windows Server without winget/Python, the patcher now generates
config.toml directly in PowerShell instead of requiring Python 3.11+.
Python patcher is still used when available.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:18:28 +00:00
delta-cloud-208e
d25708db9e fix(codex): update default model to gpt-5.4, remove o3/o4-mini
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:15:32 +00:00
delta-cloud-208e
b7a335b409 fix: use dot-sourcing instead of child PowerShell process
powershell -File runs script in child process — PATH changes don't
persist. Changed to Set-ExecutionPolicy + dot-sourcing (. script.ps1)
which runs in current session. Also added PATH restart hint to Codex
install/update scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:08:42 +00:00
delta-cloud-208e
9f26c53ece fix(codex): fix Windows download URLs — binary is .exe not .zip
GitHub releases use codex-x86_64-pc-windows-msvc.exe (not .zip).
Fixed both install and update PS1 scripts.
Also added patched settingsSchema.js to gemini releases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 08:01:38 +00:00