diff --git a/codex-launcher_2.2.0_all.deb b/codex-launcher_2.2.0_all.deb
index 65a01f5..c3e9789 100644
Binary files a/codex-launcher_2.2.0_all.deb and b/codex-launcher_2.2.0_all.deb differ
diff --git a/src/codex-launcher-gui b/src/codex-launcher-gui
index 3f8dad2..0fdaa07 100755
--- a/src/codex-launcher-gui
+++ b/src/codex-launcher-gui
@@ -1430,10 +1430,41 @@ class EditEndpointDialog(Gtk.Dialog):
self._entry_cc_ver.set_placeholder_text("e.g. 0.26.8 (Command Code only)")
add_row(5, "CC Version:", self._entry_cc_ver)
+ reasoning_css = """
+ switch.reasoning-toggle {
+ min-width: 56px; min-height: 28px;
+ border-radius: 14px;
+ background: #e67e22;
+ border: 2px solid #cf6d17;
+ padding: 0;
+ }
+ switch.reasoning-toggle:checked {
+ background: #2ecc71;
+ border: 2px solid #27ae60;
+ }
+ switch.reasoning-toggle slider {
+ min-width: 24px; min-height: 24px;
+ border-radius: 12px;
+ background: white;
+ border: 1px solid #bbb;
+ box-shadow: 0 1px 3px rgba(0,0,0,0.2);
+ }
+ """
+ css_provider = Gtk.CssProvider()
+ css_provider.load_from_data(reasoning_css.encode())
+ reasoning_style = Gtk.StyleContext()
+ reasoning_style.add_provider(css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
+
+ reasoning_box = Gtk.Box(spacing=10)
self._switch_reasoning = Gtk.Switch()
+ self._switch_reasoning.set_name("reasoning-toggle")
+ reasoning_style.add_class(self._switch_reasoning.get_style_context(), "reasoning-toggle")
self._switch_reasoning.set_active(self._data.get("reasoning_enabled", True))
self._switch_reasoning.connect("notify::active", lambda *a: self._on_reasoning_toggled())
- add_row(6, "Reasoning:", self._switch_reasoning)
+ reasoning_box.pack_start(self._switch_reasoning, False, False, 0)
+ self._lbl_reasoning = Gtk.Label()
+ reasoning_box.pack_start(self._lbl_reasoning, False, False, 0)
+ add_row(6, "Reasoning:", reasoning_box)
self._combo_effort = Gtk.ComboBoxText()
for ev, el in [("none", "None"), ("minimal", "Minimal"), ("low", "Low"),
@@ -1550,6 +1581,10 @@ class EditEndpointDialog(Gtk.Dialog):
def _on_reasoning_toggled(self, *_):
active = self._switch_reasoning.get_active()
self._combo_effort.set_sensitive(active)
+ if active:
+ self._lbl_reasoning.set_markup('ON')
+ else:
+ self._lbl_reasoning.set_markup('OFF')
def _remove_model(self, path):
current = self._combo_default.get_active_text()