diff --git a/CHANGELOG.md b/CHANGELOG.md
index c3f5086..442aef4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## v2.4.0 (2026-05-20)
+
+- **Added OpenAdapter provider preset**
+ - Base URL: `https://api.openadapter.in/v1` — one API key, 40+ models
+ - Pre-loaded models: glm-4.7, DeepSeek-V3, kimi-k2.6, qwen3.6-plus, claude-sonnet-4-6, gpt-5.4, gemini-2.5-flash, and more
+ - Works with existing openai-compat proxy backend — no special handling needed
+- Fixed Add/Edit dialog crash (missing `_on_reasoning_toggled` method)
+- Redesigned Google OAuth flow with live status dialog and clickable auth URL
+
## v2.3.2 (2026-05-20)
- **Added Google Gemini provider with OAuth support**
diff --git a/codex-launcher_2.3.2_all.deb b/codex-launcher_2.3.2_all.deb
deleted file mode 100644
index c002ee0..0000000
Binary files a/codex-launcher_2.3.2_all.deb and /dev/null differ
diff --git a/codex-launcher_2.4.0_all.deb b/codex-launcher_2.4.0_all.deb
new file mode 100644
index 0000000..d1d772d
Binary files /dev/null and b/codex-launcher_2.4.0_all.deb differ
diff --git a/src/codex-launcher-gui b/src/codex-launcher-gui
index 2a64b47..213c8a8 100755
--- a/src/codex-launcher-gui
+++ b/src/codex-launcher-gui
@@ -24,6 +24,12 @@ model_catalog_json = ""
"""
CHANGELOG = [
+ ("2.4.0", "2026-05-20", [
+ "Added OpenAdapter provider preset (api.openadapter.in)",
+ "One API key access to 40+ models — GLM, DeepSeek, Kimi, Qwen, Claude, GPT, Gemini",
+ "Fixed Add/Edit dialog crash (missing _on_reasoning_toggled method)",
+ "Redesigned Google OAuth flow with live status dialog",
+ ]),
("2.3.2", "2026-05-20", [
"Added Google Gemini provider with OAuth support",
"Two presets: 'Google Gemini (API Key)' and 'Google Gemini (OAuth)'",
@@ -201,6 +207,17 @@ PROVIDER_PRESETS = {
"gemini-2.5-flash-preview-native-audio-dialog",
],
},
+ "OpenAdapter": {
+ "backend_type": "openai-compat",
+ "base_url": "https://api.openadapter.in/v1",
+ "models": [
+ "glm-4.7", "DeepSeek-V3", "kimi-k2.6", "kimi-k2.5",
+ "qwen3.6-plus", "qwen3.5-plus",
+ "claude-sonnet-4-6", "claude-opus-4-7",
+ "gpt-5.4", "gpt-5.4-mini",
+ "gemini-2.5-flash", "gemini-2.5-pro",
+ ],
+ },
}
def safe_name(name):
@@ -583,7 +600,7 @@ class LauncherWin(Gtk.Window):
# header row
hdr = Gtk.Box(spacing=8)
vbox.pack_start(hdr, False, False, 0)
- lbl = Gtk.Label(label="Codex Launcher v2.3.2")
+ lbl = Gtk.Label(label="Codex Launcher v2.4.0")
lbl.set_use_markup(True)
hdr.pack_start(lbl, False, False, 0)
changelog_btn = Gtk.Button(label="Changelog")