Commit Graph

172 Commits

Author SHA1 Message Date
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
delta-cloud-208e
9b6d0ebeb7 fix: remove git clone dependency from all Windows instructions
All install/update/uninstall commands now use direct download via
iwr (Invoke-WebRequest) — no git clone needed, no "directory already
exists" errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:54:36 +00:00
delta-cloud-208e
72ac0d75a0 chore: fix file permissions (644 → 755)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:46:35 +00:00
delta-cloud-208e
9adb786bec feat: add update scripts for all tools + Update section in README
- gemini/ugemini_update.sh + .ps1
- codex/ucodex_update.sh + .ps1
- qwen/uqwen_update.sh + .ps1
- README.md: added Update section with one-line and cloned-repo commands
- README.md: removed outdated Codex update instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:44:38 +00:00
delta-cloud-208e
1fa1dbae11 feat(claude): add Windows PowerShell installer
Standalone uclaude_install.ps1: auto-install Node.js, npm registry
config, npm install, env vars, settings.json with permissions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:39:49 +00:00
delta-cloud-208e
a4632de6da feat: add uninstaller scripts for all tools + restore yolo mode
Uninstallers (.sh + .ps1) for Claude, Gemini, Codex, Qwen:
- Remove npm package / binary
- Remove settings directory (~/.gemini, ~/.qwen, ~/.codex, ~/.claude)
- Remove env vars from bashrc/zshrc, /etc/environment, /etc/profile.d
- Remove npm registry config

Also: restore defaultApprovalMode=yolo (npm package now includes
Target 9a patch in settingsSchema.js)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:38:14 +00:00
delta-cloud-208e
9de65c2151 fix: use auto_edit instead of yolo for defaultApprovalMode
yolo mode requires patching settingsSchema.js (Target 9a2) which is
not included in the npm package. auto_edit is the most permissive
built-in mode that works without JS patching.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:31:44 +00:00
delta-cloud-208e
8717236f29 fix: add folderTrust+yolo settings to Gemini installers and README
- settings.json now includes security.folderTrust.enabled=false and
  general.defaultApprovalMode=yolo to suppress trust/permission prompts
- Linux installer creates trustedFolders.json with common paths
- Windows PS1 installer creates trustedFolders.json for C:\ paths
- README Windows section adds $env: vars for current session
- Fixed BOM issue: all PS1 use WriteAllText instead of Set-Content

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 07:29:33 +00:00
delta-cloud-208e
f50c0dfced feat: add Windows PowerShell installers for Codex and Qwen, fix BOM issue
- codex/ucodex_install.ps1: downloads Rust binary from GitHub + patches config
- qwen/uqwen_install.ps1: npm install + patcher + env vars
- gemini/ugemini_install.ps1: fix UTF-8 BOM in settings.json (Set-Content → WriteAllText)
- README.md: add Windows CMD/PowerShell configure instructions for Gemini, Codex, Qwen

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