From 876a6703872f0c8ab13e8aa8455d9cc1a501c04a Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Mon, 4 May 2026 14:05:49 -0700 Subject: [PATCH 1/6] feat: add session save mode config --- api/config.py | 26 ++++ api/models.py | 26 ++-- api/routes.py | 80 +++++++++-- api/streaming.py | 28 +++- docs/pr-media/1406/eager-config-app-shell.png | Bin 0 -> 141005 bytes tests/test_session_save_mode.py | 132 ++++++++++++++++++ 6 files changed, 274 insertions(+), 18 deletions(-) create mode 100644 docs/pr-media/1406/eager-config-app-shell.png create mode 100644 tests/test_session_save_mode.py diff --git a/api/config.py b/api/config.py index adb4670a..e5fdc0fc 100644 --- a/api/config.py +++ b/api/config.py @@ -199,6 +199,10 @@ def _get_config_path() -> Path: return HOME / ".hermes" / "config.yaml" +_WEBUI_SESSION_SAVE_MODES = {"deferred", "eager"} +_DEFAULT_WEBUI_SESSION_SAVE_MODE = "deferred" + + def get_config() -> dict: """Return the cached config dict, loading from disk if needed.""" if not _cfg_cache: @@ -206,6 +210,28 @@ def get_config() -> dict: return _cfg_cache +def get_webui_session_save_mode(config_data: dict | None = None) -> str: + """Return the validated first-turn session persistence mode. + + ``deferred`` preserves the current first-turn sidecar behaviour: persist + pending_user_message/runtime fields before streaming, then merge the turn + after the agent finishes. ``eager`` additionally checkpoints the current + user turn into ``messages`` before launching the agent thread. Unknown + values fail closed to ``deferred`` so a typo never reintroduces eager disk + writes unexpectedly. + """ + active_cfg = config_data if isinstance(config_data, dict) else cfg + webui_cfg = active_cfg.get("webui", {}) if isinstance(active_cfg, dict) else {} + if not isinstance(webui_cfg, dict): + return _DEFAULT_WEBUI_SESSION_SAVE_MODE + mode = webui_cfg.get("session_save_mode", _DEFAULT_WEBUI_SESSION_SAVE_MODE) + if isinstance(mode, str): + normalized = mode.strip().lower() + if normalized in _WEBUI_SESSION_SAVE_MODES: + return normalized + return _DEFAULT_WEBUI_SESSION_SAVE_MODE + + def reload_config() -> None: """Reload config.yaml from the active profile's directory.""" global _cfg_mtime diff --git a/api/models.py b/api/models.py index 867beb37..33e736b2 100644 --- a/api/models.py +++ b/api/models.py @@ -629,18 +629,26 @@ def _apply_core_sync_or_error_marker( # prompt submitted just before a server restart, so materialize it before # clearing runtime stream state. if len(session.messages) != 0: + _pending_text = " ".join(str(session.pending_user_message or "").split()) + _already_checkpointed = False + if _pending_text and session.messages: + _last_msg = session.messages[-1] + if isinstance(_last_msg, dict) and _last_msg.get('role') == 'user': + _last_text = " ".join(str(_last_msg.get('content') or "").split()) + _already_checkpointed = _last_text == _pending_text _recovered_ts = int(time.time()) if isinstance(session.pending_started_at, (int, float)) and session.pending_started_at > 0: _recovered_ts = int(session.pending_started_at) - recovered = { - 'role': 'user', - 'content': session.pending_user_message, - 'timestamp': _recovered_ts, - '_recovered': True, - } - if session.pending_attachments: - recovered['attachments'] = list(session.pending_attachments) - session.messages.append(recovered) + if not _already_checkpointed: + recovered = { + 'role': 'user', + 'content': session.pending_user_message, + 'timestamp': _recovered_ts, + '_recovered': True, + } + if session.pending_attachments: + recovered['attachments'] = list(session.pending_attachments) + session.messages.append(recovered) session.active_stream_id = None session.pending_user_message = None session.pending_attachments = [] diff --git a/api/routes.py b/api/routes.py index 47a2b12e..5a0ae736 100644 --- a/api/routes.py +++ b/api/routes.py @@ -392,6 +392,7 @@ from api.config import ( set_reasoning_display, set_reasoning_effort, create_stream_channel, + get_webui_session_save_mode, ) from api.helpers import ( require, @@ -5056,6 +5057,68 @@ def _handle_background(handler, body): return j(handler, {"task_id": task_id, "stream_id": stream_id, "session_id": bg.session_id}) +def _checkpoint_user_message_for_eager_session_save(s, msg: str, attachments, started_at: float | None) -> None: + """Materialize the current user turn for eager first-turn persistence. + + The streaming thread still receives ``pending_user_message`` so existing + cancel/recovery/final-merge paths keep their current contract. Eager mode + only adds a durable display-message checkpoint before the agent launches. + """ + if not msg: + return + existing = list(getattr(s, "messages", None) or []) + if existing: + latest = existing[-1] + if isinstance(latest, dict) and latest.get("role") == "user": + latest_text = " ".join(str(latest.get("content") or "").split()) + msg_text = " ".join(str(msg or "").split()) + if latest_text == msg_text: + return + user_msg = {"role": "user", "content": msg} + if isinstance(started_at, (int, float)) and started_at > 0: + user_msg["timestamp"] = int(started_at) + if attachments: + user_msg["attachments"] = list(attachments) + s.messages.append(user_msg) + + +def _prepare_chat_start_session_for_stream( + s, + *, + msg: str, + attachments, + workspace: str, + model: str, + model_provider, + stream_id: str, + started_at: float | None = None, +): + """Persist chat-start state according to webui.session_save_mode. + + ``deferred`` keeps the existing sidecar/WAL-backed behaviour: save pending + fields but leave the display transcript empty until the agent merges the + result. ``eager`` additionally writes the current user turn into messages so + a process restart immediately after /api/chat/start preserves the prompt as + a normal session message. Empty sessions are never saved here because this + helper only runs after a non-empty message is validated. + """ + s.workspace = workspace + s.model = model + s.model_provider = model_provider + s.active_stream_id = stream_id + s.pending_user_message = msg + s.pending_attachments = attachments + s.pending_started_at = started_at if started_at is not None else time.time() + if get_webui_session_save_mode() == "eager": + _checkpoint_user_message_for_eager_session_save( + s, + msg, + attachments, + s.pending_started_at, + ) + s.save() + + def _handle_chat_start(handler, body): try: require(body, "session_id") @@ -5103,14 +5166,15 @@ def _handle_chat_start(handler, body): _clear_stale_stream_state(s) stream_id = uuid.uuid4().hex with _get_session_agent_lock(s.session_id): - s.workspace = workspace - s.model = model - s.model_provider = model_provider - s.active_stream_id = stream_id - s.pending_user_message = msg - s.pending_attachments = attachments - s.pending_started_at = time.time() - s.save() + _prepare_chat_start_session_for_stream( + s, + msg=msg, + attachments=attachments, + workspace=workspace, + model=model, + model_provider=model_provider, + stream_id=stream_id, + ) set_last_workspace(workspace) stream = create_stream_channel() with STREAMS_LOCK: diff --git a/api/streaming.py b/api/streaming.py index 1ff71227..c206e032 100644 --- a/api/streaming.py +++ b/api/streaming.py @@ -1164,6 +1164,17 @@ def _find_current_user_turn(messages, msg_text): return fallback +def _drop_checkpointed_current_user_from_context(messages, msg_text): + """Return model history without an eager-checkpointed current user turn.""" + history = list(messages or []) + if not history: + return history + current_user_key = _message_identity({'role': 'user', 'content': msg_text}) + if current_user_key and _message_identity(history[-1]) == current_user_key: + return history[:-1] + return history + + def _merge_display_messages_after_agent_result(previous_display, previous_context, result_messages, msg_text): """Keep UI transcript durable while allowing model context to compact. @@ -1191,8 +1202,20 @@ def _merge_display_messages_after_agent_result(previous_display, previous_contex merged = previous_display[:] seen = {_message_identity(m) for m in merged} + current_user_key = _message_identity({'role': 'user', 'content': msg_text}) for msg in candidates: key = _message_identity(msg) + if ( + key is not None + and key == current_user_key + and merged + and _message_identity(merged[-1]) == key + ): + # Eager session-save mode can checkpoint the current user turn + # before the agent runs. When the agent returns that same user turn + # in result_messages, keep the durable checkpoint and append only + # the assistant/tool delta. + continue if _is_context_compression_marker(msg) and key is not None and key in seen: continue merged.append(copy.deepcopy(msg)) @@ -2059,7 +2082,10 @@ def _run_agent_streaming( # Truthy-check covers None, missing-attr, and 0 uniformly. _turn_started_at = _pending_started_at if _pending_started_at else time.time() _previous_messages = list(s.messages or []) - _previous_context_messages = list(_session_context_messages(s)) + _previous_context_messages = _drop_checkpointed_current_user_from_context( + _session_context_messages(s), + msg_text, + ) _pre_compression_count = getattr( getattr(agent, 'context_compressor', None), 'compression_count', 0, diff --git a/docs/pr-media/1406/eager-config-app-shell.png b/docs/pr-media/1406/eager-config-app-shell.png new file mode 100644 index 0000000000000000000000000000000000000000..871741ea243a16dffcbcb52b098cf9276affc785 GIT binary patch literal 141005 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

rOj*EQ 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ð`G`jY_oTN?{tNB6TY%X8(h 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 Date: Mon, 4 May 2026 14:07:16 -0700 Subject: [PATCH 2/6] feat: add Codex OAuth onboarding flow --- api/oauth.py | 546 +++++++++++++----- api/onboarding.py | 5 +- api/routes.py | 74 ++- docs/pr-media/1362/codex-oauth-onboarding.png | Bin 0 -> 154809 bytes static/onboarding.js | 175 +++--- .../test_issue1362_codex_oauth_onboarding.py | 182 ++++++ 6 files changed, 720 insertions(+), 262 deletions(-) create mode 100644 docs/pr-media/1362/codex-oauth-onboarding.png create mode 100644 tests/test_issue1362_codex_oauth_onboarding.py diff --git a/api/oauth.py b/api/oauth.py index 4cf4f180..63eb1ed2 100644 --- a/api/oauth.py +++ b/api/oauth.py @@ -1,196 +1,428 @@ -"""In-app OAuth flow implementations for providers like OpenAI Codex. +"""In-app OAuth flow implementations for onboarding. -Uses only stdlib (urllib.request, json, time) — no external dependencies. -Credentials are stored in ~/.hermes/auth.json under the credential_pool. +The browser receives only WebUI-local flow metadata (flow_id, user_code, +verification_uri, high-level status). Provider device/auth codes and OAuth +tokens stay server-side and are persisted to the active Hermes profile's +``auth.json`` credential_pool. """ +from __future__ import annotations + import json import logging +import os +import stat +import threading import time import uuid -import urllib.request -import urllib.parse import urllib.error +import urllib.parse +import urllib.request +from datetime import datetime, timezone from pathlib import Path +from typing import Any logger = logging.getLogger(__name__) +# Compatibility for older helper tests and self-heal code that import these. AUTH_JSON_PATH = Path.home() / ".hermes" / "auth.json" -# ── Codex OAuth constants (from hermes_cli/auth.py) ── -CODEX_CLIENT_ID = "pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh" -CODEX_AUTH_URL = "https://auth.openai.com/oauth/device/authorize" -CODEX_TOKEN_URL = "https://auth.openai.com/oauth/token" -CODEX_SCOPE = "openid profile email offline_access" -CODEX_GRANT_TYPE_DEVICE = "urn:ietf:params:oauth:grant-type:device_code" +CODEX_ISSUER = "https://auth.openai.com" +CODEX_CLIENT_ID = "app_EMoamEEZ73f0CkXaXp7hrann" +CODEX_VERIFICATION_URI = f"{CODEX_ISSUER}/codex/device" +CODEX_USER_CODE_URL = f"{CODEX_ISSUER}/api/accounts/deviceauth/usercode" +CODEX_DEVICE_TOKEN_URL = f"{CODEX_ISSUER}/api/accounts/deviceauth/token" +CODEX_TOKEN_URL = f"{CODEX_ISSUER}/oauth/token" +CODEX_REDIRECT_URI = f"{CODEX_ISSUER}/deviceauth/callback" +CODEX_BASE_URL = "https://chatgpt.com/backend-api/codex" +CODEX_FLOW_MAX_WAIT_SECONDS = 15 * 60 + +_ALLOWED_ONBOARDING_OAUTH_PROVIDERS = {"openai-codex"} +_REJECTED_ONBOARDING_OAUTH_PROVIDERS = { + "anthropic", + "claude", + "claude-code", + "nous", + "qwen-oauth", + "gemini-cli", + "google-gemini-cli", + "minimax", + "minimax-oauth", + "copilot", + "copilot-acp", +} + +_OAUTH_FLOWS: dict[str, dict[str, Any]] = {} +_OAUTH_FLOWS_LOCK = threading.Lock() -# ── auth.json helpers ── +def _get_active_hermes_home() -> Path: + try: + from api.profiles import get_active_hermes_home -def _read_auth_json(): - """Read auth.json and return parsed dict, or empty dict.""" - if AUTH_JSON_PATH.exists(): + return Path(get_active_hermes_home()) + except Exception: + return Path.home() / ".hermes" + + +# ── legacy auth.json helpers ──────────────────────────────────────────────── + +def _read_auth_json(auth_path: Path | None = None) -> dict[str, Any]: + """Read auth.json and return parsed dict, or an empty compatible store.""" + path = auth_path or AUTH_JSON_PATH + if path.exists(): try: - return json.loads(AUTH_JSON_PATH.read_text()) + loaded = json.loads(path.read_text(encoding="utf-8")) + return loaded if isinstance(loaded, dict) else {} except json.JSONDecodeError as exc: - logger.warning("Failed to parse %s: %s", AUTH_JSON_PATH, exc) + logger.warning("Failed to parse %s: %s", path, exc) return {} return {} def read_auth_json(): - """Public wrapper for _read_auth_json. - - Used by the streaming layer's credential self-heal logic (#1401) to - re-read credentials without coupling to the private helper. - """ + """Public wrapper for streaming credential self-heal code.""" return _read_auth_json() -def _write_auth_json(data): - """Atomically write auth.json via temp-file rename. +def _write_auth_json(data: dict[str, Any], auth_path: Path | None = None) -> Path: + """Atomically write auth.json with owner-only permissions. - SECURITY: auth.json contains OAuth access/refresh tokens. ``tmp.replace()`` - preserves the temp file's mode (created with the process umask, typically - 0644 or 0664), NOT the prior auth.json mode. Without an explicit chmod, - tokens land world-readable on shared systems. Set 0600 BEFORE the rename - so there is no window where the final file is world-readable. - (Opus pre-release advisor finding.) + OAuth access/refresh tokens live in this file. The temp file is chmod 0600 + before rename so the final path never inherits a permissive process umask. """ - import os, stat - AUTH_JSON_PATH.parent.mkdir(parents=True, exist_ok=True) - tmp = AUTH_JSON_PATH.with_suffix('.tmp') - tmp.write_text(json.dumps(data, indent=2, ensure_ascii=False)) + path = auth_path or AUTH_JSON_PATH + path.parent.mkdir(parents=True, exist_ok=True) + tmp = path.with_name(f"{path.name}.tmp.{os.getpid()}.{uuid.uuid4().hex}") try: - tmp.chmod(0o600) - except OSError as e: - # Best-effort: if chmod fails (e.g. on a filesystem that doesn't - # support POSIX modes), don't abort. The startup permission fixer - # in api.startup will sweep auth.json on the next process start. - logger.warning("Failed to chmod 0600 on %s: %s", tmp, e) - tmp.replace(AUTH_JSON_PATH) + tmp.write_text(json.dumps(data, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") + try: + tmp.chmod(0o600) + except OSError as exc: + logger.warning("Failed to chmod 0600 on %s: %s", tmp, exc) + tmp.replace(path) + try: + path.chmod(stat.S_IRUSR | stat.S_IWUSR) + except OSError: + pass + return path + finally: + try: + if tmp.exists(): + tmp.unlink() + except OSError: + pass -# ── Codex device-code flow ── +def _now_iso() -> str: + return datetime.now(timezone.utc).isoformat().replace("+00:00", "Z") -def start_codex_device_code(): - """Start Codex OAuth device-code flow. - Returns dict: { device_code, user_code, verification_uri, expires_in, interval } - Raises RuntimeError on network error. - """ - params = { - "client_id": CODEX_CLIENT_ID, - "scope": CODEX_SCOPE, +def _persist_codex_credentials(hermes_home: Path, token_data: dict[str, Any]) -> Path: + """Persist Codex OAuth credentials to active-profile auth.json.""" + access_token = str(token_data.get("access_token") or "").strip() + refresh_token = str(token_data.get("refresh_token") or "").strip() + if not access_token: + raise RuntimeError("Codex token exchange did not return an access_token") + + auth_path = Path(hermes_home) / "auth.json" + auth = _read_auth_json(auth_path) + auth.setdefault("version", 1) + pool = auth.setdefault("credential_pool", {}) + if not isinstance(pool, dict): + pool = {} + auth["credential_pool"] = pool + entries = pool.setdefault("openai-codex", []) + if not isinstance(entries, list): + entries = [] + pool["openai-codex"] = entries + + now = _now_iso() + entry = None + for candidate in entries: + if isinstance(candidate, dict) and candidate.get("source") == "manual:device_code": + entry = candidate + break + if entry is None: + entry = { + "id": "codex-oauth-" + uuid.uuid4().hex[:12], + "label": "Codex OAuth", + "auth_type": "oauth", + "priority": 0, + "source": "manual:device_code", + "base_url": CODEX_BASE_URL, + "created_at": now, + } + entries.insert(0, entry) + + entry.update( + { + "label": "Codex OAuth", + "auth_type": "oauth", + "priority": 0, + "source": "manual:device_code", + "access_token": access_token, + "refresh_token": refresh_token, + "base_url": CODEX_BASE_URL, + "last_refresh": now, + "updated_at": now, + } + ) + auth["updated_at"] = now + path = _write_auth_json(auth, auth_path) + + try: + from api.config import invalidate_credential_pool_cache + + invalidate_credential_pool_cache("openai-codex") + except Exception: + logger.debug("Failed to invalidate openai-codex credential cache", exc_info=True) + + return path + + +# Backward-compatible wrapper used by older code/tests. +def _save_codex_credentials(token_data): + return _persist_codex_credentials(_get_active_hermes_home(), token_data) + + +# ── Codex protocol ────────────────────────────────────────────────────────── + +def _json_request(url: str, payload: dict[str, Any], *, form: bool = False) -> dict[str, Any]: + if form: + data = urllib.parse.urlencode(payload).encode("utf-8") + content_type = "application/x-www-form-urlencoded" + else: + data = json.dumps(payload).encode("utf-8") + content_type = "application/json" + req = urllib.request.Request( + url, + data=data, + method="POST", + headers={"Content-Type": content_type, "Accept": "application/json"}, + ) + with urllib.request.urlopen(req, timeout=15) as resp: + return json.loads(resp.read().decode("utf-8")) + + +def _request_codex_user_code() -> dict[str, Any]: + return _json_request(CODEX_USER_CODE_URL, {"client_id": CODEX_CLIENT_ID}) + + +def _poll_codex_authorization(device_auth_id: str, user_code: str) -> dict[str, Any] | None: + try: + return _json_request( + CODEX_DEVICE_TOKEN_URL, + {"device_auth_id": device_auth_id, "user_code": user_code}, + ) + except urllib.error.HTTPError as exc: + if exc.code in (403, 404): + return None + raise + + +def _exchange_codex_authorization(authorization_code: str, code_verifier: str) -> dict[str, Any]: + return _json_request( + CODEX_TOKEN_URL, + { + "grant_type": "authorization_code", + "code": authorization_code, + "redirect_uri": CODEX_REDIRECT_URI, + "client_id": CODEX_CLIENT_ID, + "code_verifier": code_verifier, + }, + form=True, + ) + + +def _public_start_payload(flow_id: str, flow: dict[str, Any]) -> dict[str, Any]: + return { + "ok": True, + "provider": "openai-codex", + "flow_id": flow_id, + "status": flow.get("status", "pending"), + "verification_uri": CODEX_VERIFICATION_URI, + "user_code": flow.get("user_code", ""), + "expires_at": flow.get("expires_at"), + "poll_interval_seconds": flow.get("poll_interval_seconds", 5), } - data = urllib.parse.urlencode(params).encode() - req = urllib.request.Request(CODEX_AUTH_URL, data=data, method="POST") - req.add_header("Content-Type", "application/x-www-form-urlencoded") + + +def _public_status_payload(flow_id: str, flow: dict[str, Any]) -> dict[str, Any]: + payload = { + "ok": True, + "provider": "openai-codex", + "flow_id": flow_id, + "status": flow.get("status", "error"), + } + if flow.get("status") == "error" and flow.get("error"): + payload["error"] = str(flow.get("error"))[:200] + return payload + + +def _drop_sensitive_flow_fields(flow: dict[str, Any]) -> None: + for key in ( + "device_auth_id", + "authorization_code", + "code_verifier", + "access_token", + "refresh_token", + "token_data", + ): + flow.pop(key, None) + + +def _cleanup_oauth_flows(now: float | None = None) -> None: + now = now or time.time() + cutoff = now - 300 + with _OAUTH_FLOWS_LOCK: + for fid, flow in list(_OAUTH_FLOWS.items()): + status = flow.get("status") + if status == "pending" and float(flow.get("expires_at") or 0) <= now: + flow["status"] = "expired" + _drop_sensitive_flow_fields(flow) + if status in {"success", "expired", "cancelled", "error"} and float(flow.get("updated_at") or 0) < cutoff: + _OAUTH_FLOWS.pop(fid, None) + + +def _spawn_codex_oauth_worker(flow_id: str) -> None: + worker = threading.Thread(target=_run_codex_oauth_worker, args=(flow_id,), daemon=True) + worker.start() + + +def _set_flow_status(flow_id: str, status: str, **fields: Any) -> None: + with _OAUTH_FLOWS_LOCK: + flow = _OAUTH_FLOWS.get(flow_id) + if not flow: + return + flow["status"] = status + flow["updated_at"] = time.time() + flow.update(fields) + if status in {"success", "expired", "cancelled", "error"}: + _drop_sensitive_flow_fields(flow) + + +def _run_codex_oauth_worker(flow_id: str) -> None: + while True: + with _OAUTH_FLOWS_LOCK: + flow = dict(_OAUTH_FLOWS.get(flow_id) or {}) + if not flow: + return + status = flow.get("status") + if status != "pending": + return + if float(flow.get("expires_at") or 0) <= time.time(): + _set_flow_status(flow_id, "expired") + return + + time.sleep(max(1, int(flow.get("poll_interval_seconds") or 5))) + + with _OAUTH_FLOWS_LOCK: + live = dict(_OAUTH_FLOWS.get(flow_id) or {}) + if live.get("status") != "pending": + return + try: + code_resp = _poll_codex_authorization( + str(live.get("device_auth_id") or ""), + str(live.get("user_code") or ""), + ) + if code_resp is None: + continue + authorization_code = str(code_resp.get("authorization_code") or "").strip() + code_verifier = str(code_resp.get("code_verifier") or "").strip() + if not authorization_code or not code_verifier: + raise RuntimeError("Device auth response missing authorization_code or code_verifier") + tokens = _exchange_codex_authorization(authorization_code, code_verifier) + _persist_codex_credentials(Path(live["hermes_home"]), tokens) + _set_flow_status(flow_id, "success") + return + except Exception as exc: + logger.warning("Codex OAuth onboarding flow failed: %s", exc) + _set_flow_status(flow_id, "error", error=str(exc)) + return + + +def start_onboarding_oauth_flow(body: dict[str, Any] | None) -> dict[str, Any]: + """Start the supported onboarding OAuth flow. + + Currently v1 intentionally supports only OpenAI Codex. Other providers are + rejected instead of silently falling back to terminal-first setup. + """ + _cleanup_oauth_flows() + provider = str((body or {}).get("provider") or "").strip().lower() + if provider not in _ALLOWED_ONBOARDING_OAUTH_PROVIDERS: + if provider in _REJECTED_ONBOARDING_OAUTH_PROVIDERS or provider: + raise ValueError("Only OpenAI Codex OAuth is supported in WebUI onboarding right now") + raise ValueError("provider is required") + + hermes_home = _get_active_hermes_home() try: - with urllib.request.urlopen(req, timeout=15) as resp: - return json.loads(resp.read().decode()) - except Exception as e: - raise RuntimeError(f"Failed to start Codex OAuth: {e}") from e + device = _request_codex_user_code() + except Exception as exc: + raise RuntimeError(f"Failed to start Codex OAuth: {exc}") from exc + + user_code = str(device.get("user_code") or "").strip() + device_auth_id = str(device.get("device_auth_id") or "").strip() + if not user_code or not device_auth_id: + raise RuntimeError("Device code response missing required fields") + + interval = max(3, int(device.get("interval") or 5)) + expires_in = int(device.get("expires_in") or CODEX_FLOW_MAX_WAIT_SECONDS) + expires_at = time.time() + min(max(expires_in, 60), CODEX_FLOW_MAX_WAIT_SECONDS) + flow_id = uuid.uuid4().hex + flow = { + "provider": "openai-codex", + "status": "pending", + "device_auth_id": device_auth_id, + "user_code": user_code, + "expires_at": expires_at, + "poll_interval_seconds": interval, + "hermes_home": str(hermes_home), + "created_at": time.time(), + "updated_at": time.time(), + } + with _OAUTH_FLOWS_LOCK: + _OAUTH_FLOWS[flow_id] = flow + _spawn_codex_oauth_worker(flow_id) + return _public_start_payload(flow_id, flow) + + +def poll_onboarding_oauth_flow(flow_id: str) -> dict[str, Any]: + _cleanup_oauth_flows() + fid = str(flow_id or "").strip() + if not fid: + raise ValueError("flow_id is required") + with _OAUTH_FLOWS_LOCK: + flow = _OAUTH_FLOWS.get(fid) + if not flow: + raise KeyError("OAuth flow not found") + if flow.get("status") == "pending" and float(flow.get("expires_at") or 0) <= time.time(): + flow["status"] = "expired" + flow["updated_at"] = time.time() + _drop_sensitive_flow_fields(flow) + return _public_status_payload(fid, dict(flow)) + + +def cancel_onboarding_oauth_flow(body: dict[str, Any] | None) -> dict[str, Any]: + fid = str((body or {}).get("flow_id") or "").strip() + if not fid: + raise ValueError("flow_id is required") + with _OAUTH_FLOWS_LOCK: + flow = _OAUTH_FLOWS.get(fid) + if not flow: + return {"ok": True, "provider": "openai-codex", "flow_id": fid, "status": "cancelled"} + if flow.get("status") == "pending": + flow["status"] = "cancelled" + flow["updated_at"] = time.time() + _drop_sensitive_flow_fields(flow) + return _public_status_payload(fid, dict(flow)) + + +# Backward-compatible names from the abandoned spike. They intentionally do not +# expose provider device secrets to callers anymore. +def start_codex_device_code(): + return start_onboarding_oauth_flow({"provider": "openai-codex"}) def poll_codex_token(device_code, interval=5): - """Poll for Codex OAuth token. Generator that yields status dicts. - - Yields: - {"status": "polling", "attempt": N, "max_attempts": 40} - {"status": "success", "credentials": {...}} - {"status": "error", "error": "..."} - """ - params = { - "grant_type": CODEX_GRANT_TYPE_DEVICE, - "device_code": device_code, - "client_id": CODEX_CLIENT_ID, - } - data = urllib.parse.urlencode(params).encode() - max_attempts = 40 # 40 * 5 = 200s max - - for attempt in range(max_attempts): - yield {"status": "polling", "attempt": attempt + 1, "max_attempts": max_attempts} - - req = urllib.request.Request(CODEX_TOKEN_URL, data=data, method="POST") - req.add_header("Content-Type", "application/x-www-form-urlencoded") - try: - with urllib.request.urlopen(req, timeout=15) as resp: - token_data = json.loads(resp.read().decode()) - # Save to auth.json credential_pool - _save_codex_credentials(token_data) - yield {"status": "success", "credentials": { - "access_token": "***", - "refresh_token": "***", - "token_type": token_data.get("token_type"), - "expires_in": token_data.get("expires_in"), - }} - return - except urllib.error.HTTPError as e: - body = e.read().decode() - try: - err_data = json.loads(body) - error = err_data.get("error", "") - if error == "authorization_pending": - time.sleep(interval) - continue - elif error == "slow_down": - time.sleep(interval + 5) - continue - elif error == "expired_token": - yield {"status": "error", "error": "Device code expired. Please try again."} - return - else: - yield {"status": "error", "error": err_data.get("error_description", error)} - return - except Exception: - yield {"status": "error", "error": body[:200]} - return - except Exception as e: - yield {"status": "error", "error": str(e)} - return - - yield {"status": "error", "error": "OAuth flow timed out. Please try again."} - - -def _save_codex_credentials(token_data): - """Save Codex OAuth credentials to auth.json credential_pool.""" - auth = _read_auth_json() - if "credential_pool" not in auth: - auth["credential_pool"] = {} - pool = auth["credential_pool"] - - if "openai-codex" not in pool: - pool["openai-codex"] = [] - - # Check if an oauth_device entry already exists (update in place) - updated = False - _now_iso = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) - for entry in pool["openai-codex"]: - if entry.get("source") == "oauth_device": - entry["access_token"] = token_data.get("access_token", "") - entry["refresh_token"] = token_data.get("refresh_token", "") - entry["auth_type"] = "oauth" - entry["updated_at"] = _now_iso - updated = True - break - - if not updated: - existing_ids = {e["id"] for e in pool.get("openai-codex", [])} - for _ in range(3): # retry on collision - cred_id = "codex-oauth-" + uuid.uuid4().hex[:8] - if cred_id not in existing_ids: - break - pool["openai-codex"].append({ - "id": cred_id, - "label": "Codex OAuth", - "auth_type": "oauth", - "source": "oauth_device", - "access_token": token_data.get("access_token", ""), - "refresh_token": token_data.get("refresh_token", ""), - "priority": 1, - "created_at": _now_iso, - }) - - auth["updated_at"] = _now_iso - _write_auth_json(auth) + yield {"status": "error", "error": "Use /api/onboarding/oauth/poll with flow_id"} diff --git a/api/onboarding.py b/api/onboarding.py index b572c542..af9d82ce 100644 --- a/api/onboarding.py +++ b/api/onboarding.py @@ -185,8 +185,9 @@ _PROVIDER_CATEGORIES = [ ] _UNSUPPORTED_PROVIDER_NOTE = ( - "OAuth and advanced provider flows such as Nous Portal, OpenAI Codex, and GitHub " - "Copilot are still terminal-first. Use `hermes model` for those flows." + "Advanced provider flows such as Nous Portal and GitHub Copilot are still " + "terminal-first. OpenAI Codex can be authenticated in this onboarding flow " + "when your Hermes config selects the openai-codex provider." ) diff --git a/api/routes.py b/api/routes.py index 47a2b12e..1be8a3ae 100644 --- a/api/routes.py +++ b/api/routes.py @@ -1252,6 +1252,11 @@ from api.onboarding import ( complete_onboarding, probe_provider_endpoint, ) +from api.oauth import ( + cancel_onboarding_oauth_flow, + poll_onboarding_oauth_flow, + start_onboarding_oauth_flow, +) # Approval system (optional -- graceful fallback if agent not available) try: @@ -2279,38 +2284,19 @@ def handle_get(handler, parsed) -> bool: return j(handler, {"error": "not found"}, status=404) return _handle_clarify_inject(handler, parsed) - # ── OAuth (Codex device-code) ── - if parsed.path == "/api/oauth/codex/start": - """Start Codex device-code OAuth flow. Returns user_code + verification_uri.""" - try: - from api.oauth import start_codex_device_code - result = start_codex_device_code() - return j(handler, result) - except Exception as e: - return j(handler, {"error": str(e)}, status=500) - - if parsed.path == "/api/oauth/codex/poll": - """SSE endpoint for polling Codex OAuth token.""" + if parsed.path == "/api/onboarding/oauth/poll": qs = parse_qs(parsed.query) - device_code = qs.get("device_code", [""])[0] - if not device_code: - return j(handler, {"error": "device_code required"}, status=400) - handler.send_response(200) - handler.send_header("Content-Type", "text/event-stream") - handler.send_header("Cache-Control", "no-cache") - handler.send_header("Connection", "keep-alive") - handler.end_headers() + flow_id = qs.get("flow_id", [""])[0] try: - from api.oauth import poll_codex_token - for event in poll_codex_token(device_code): - handler.wfile.write(f"data: {json.dumps(event)}\n\n".encode()) - handler.wfile.flush() - if event.get("status") in ("success", "error"): - break - except Exception as e: - handler.wfile.write(f"data: {json.dumps({'status': 'error', 'error': str(e)})}\n\n".encode()) - handler.wfile.flush() - return # SSE handled, no JSON response + return j( + handler, + poll_onboarding_oauth_flow(flow_id), + extra_headers={"Cache-Control": "no-store"}, + ) + except ValueError as e: + return bad(handler, str(e)) + except KeyError as e: + return bad(handler, str(e), 404) # ── Cron API (GET) ── # All cron handlers touch cron.jobs which resolves HERMES_HOME from @@ -3280,6 +3266,34 @@ def handle_post(handler, parsed) -> bool: handler.wfile.write(response_body) return True + if parsed.path == "/api/onboarding/oauth/start": + from api.auth import is_auth_enabled + import os as _os + if not is_auth_enabled() and not _os.getenv("HERMES_WEBUI_ONBOARDING_OPEN"): + import ipaddress + try: + _xff = handler.headers.get("X-Forwarded-For", "").split(",")[0].strip() + _xri = handler.headers.get("X-Real-IP", "").strip() + _raw = handler.client_address[0] + addr = ipaddress.ip_address(_xff or _xri or _raw) + is_local = addr.is_loopback or addr.is_private + except ValueError: + is_local = False + if not is_local: + return bad(handler, "Onboarding OAuth is only available from local networks when auth is not enabled. To bypass this on a remote server, set HERMES_WEBUI_ONBOARDING_OPEN=1.", 403) + try: + return j(handler, start_onboarding_oauth_flow(body), extra_headers={"Cache-Control": "no-store"}) + except ValueError as e: + return bad(handler, str(e)) + except RuntimeError as e: + return bad(handler, str(e), 500) + + if parsed.path == "/api/onboarding/oauth/cancel": + try: + return j(handler, cancel_onboarding_oauth_flow(body), extra_headers={"Cache-Control": "no-store"}) + except ValueError as e: + return bad(handler, str(e)) + if parsed.path == "/api/onboarding/setup": # Writing API keys to disk - restrict to local/private networks unless auth is active. # In Docker, requests arrive from the bridge network (172.x.x.x), not 127.0.0.1, diff --git a/docs/pr-media/1362/codex-oauth-onboarding.png b/docs/pr-media/1362/codex-oauth-onboarding.png new file mode 100644 index 0000000000000000000000000000000000000000..9d184151c5a7f7bee64e9f9ac8b02b7ddca14af1 GIT binary patch literal 154809 zcmYgXWmsIxvV{;JxCFQ0?(PJ42<{Nv-Q9u@8r8Co- zeqTi~GspKlE+To3r#&wSMZcG_3Z{Mu$A5(sRYp_zj4Mj(M=4b~laG1S?i%G|*Zz<= z_Tge$yKKeYOq!&fG06OIeU`>yyK>&<-WoQu%!jN1{9*{8CRdsBP{T2rA_<%sMdtOe2YEh-?fPPHX9( zJRC@4LOtrQ=|R6|q5}Ovftm=FJ`cUm6v{LNDsi0bn7UTk|JA646J#E0!3;$i*KiHB zhz&D4vJn*aF`W|VaU5GQ@N-H@qZPe^T653iFuI$pNRsE@p>{}{WtftCcQHtzlBfn$ z8J4=7e}uB1Yz~J%%l!3;JrDK>pn@Ed;xTH1;+#MOmM{y6tkVdxu|z1&1fl0J>!%EQ z!blj|QL`L> zW6%#1Fyq?Q6WA^gXD=Osilok{lU8FKmYLEjTK)ob6iNlGJ;yFFq_vMDBj(0o!&=}f zfI(w{kN%pKvQ0dMgM`hmABpwm!|-=b_&6V$&(z-3mD|QR>g=)9m1WxeZ@V==S#%u# zuFN&6;R>{JT^6kmrPhM}!mJFhzO_{f(F0TD@39!AXZo7tf|6`=nO45Hp>X_DC_sh$y$QNr0o^_7d({Y}ArUD<`lNzu+knaW)d zfThLC7;7faye^RWQpeOujWG@->e84he}gWcEYGJVJzqjb08l=7DY#86fhR!zz#L_I zVGeJfT|cQC@vVK|4M(vM6xGJricV>x8g402i4mkYD)cYPJv6v2F@Gb9thW!%UT#qy zqjgYGK;tr!Os-~Qc1iu_u_(`H&L0^80UQ8G}{E&Wy<@$m6cAFr9D(R}qp!>c@Dq z-FMhzCwto^8o*vap6V#N4FPOhusu zvG|L}4tG)O4nOBPP!lDl106zg!l)iN!T&{e}P0|1vv>ZC(Qe4v)Ft)d) zZw10#=vHTsS)xI=IX)o)r7+FoFB~y_L!9+J6d9en5WVipLO+%+$)pb~D~27Hc8@F( zF$;1Js*KxAP^L#oKwgjqaFK&Rq$*98s|liK(&_peOu*RX z6S9)BanBx!hnMmrOgGTOVNIic%dlyh%$x{S^QNf=mt^TKq9UWOrP>t^%RbL5g$)VX z{j%1EEyZ~taLGt(^Wa1Wj1TwXK`UaM5Z=Z;+%cJ(RFnffrt^z|Z{oz7CG0_dBI>CO8%XF7Gia8BkHTr3JNItPtg&JKq6OrIt z3KNs3$!zz4W)412)gNy{feE(!Ck2d=5{X#1GOTVSHl!=KXnaxIURyggEj@{*qoIk2 z9LgS*y!(h!=5;&+5AUzgIb=#jP6JG`>nk;`l`<9<73`Ft67#2^Ad7aDIy&vaniD#u z8HxcAg{vS2xCe|7FZWQF$nijaMLXO*+sRg>xxU6u2=^D|FTak}tX&oZ4ZWeLTLK#~ z8ERtd4KMIS`M>g+TcChpgS4szB?7*I;=)`ni_nBf8i3Ec%;`|4@Bz?T9 zF}&6_ub`rkjI3y8KH&mY!}bLBz;YQ?H8aRk_-f;z;c1}MHg%F@&(H{|%Hh6=UVEu! zhg3?MEp(o4Ylj+^`h%LBwnO4|JV#ceaAt}-Hm%TkHxP~F@4Wxaqf37&g#J6hvS=Wj zx_hMDN<~l*h8Li-|EhRQ9Z>>o9WiFkx6=7-RQL4AsagU|{cWjMtjM_LneeLeeNio+ zGaC0YfKtw0$&S4=Ju9bu(c=COO5$p7;eT8J&0>tjK&iZoLD?g83VW?!lPP6$Hcn_6 z=UlJhPu8oJfUga&p#)io~YuDzmC!k!&{gJ;i8Owc|& zEiB@q6_6+n|DVVPIl$oSrt1&X2oRPij)-o|TazLnkxB?Wgjm{3z5NC!NKb#it&+}C zd$x3Oj=Ik)Yc8dfRQH?@jMpu(dO@kas z9YIQ!Agwt1JS;_~#5Tsoqc-e2$hPkzj75@ZD#F{}&)a(iiy{xQ3P5t7IdT=+i?V-F z|Nl&@bjy)KNi)!6TSLcKawxMO!&fD;JjyXLF5T)Z(^l<#X-Ot+t?hqzbGSRU3AG=h z+1eR4(gIup<3YeQq1zW|-n5S7dgA*&pcnib5lU@q+XUy-YR0;|f$&B#SVs6Yi3Bu1 z`VnboH&rUS^4XnwCMTz-r{#7iYCR1@qdkrW`as}>YoUwp+Q9NQQbayxn6JN?{}+A4 zt6Lc!u@ZQAJ25C25-Id}Y6sZ>n zM5Qv$=D|DM8!wE8-j-^|azpvTRLO+Z3%Vi??)wJo_}j#&^P1~<*O z-FxeVp8z$ppie+vHA!+BT;%PxlaKSWHg_`rKR0){AZ2{~nY%Wp4~6ja;tJy!s%KCl zsgp37_bG%Wnr*Bf#_&ArOlJk-P|Dn&n zyTpxa5DpH#84?yr9$NXczH;s_ng^m)!os@b5|O+S<1D*a(=s(@!+1nUYRKGb{t=~) zK6lUY){$RW)Ai7>cp$EFUDsa&_e&Zhz@%ZH|pbBuaaxV^A5-Nu?(8)xJpxVwd zS1vDRHr&cK;_DI3tXE>BuL$oE62p1PZENNg2B8?>sH9-?E%o}Z$A3pvL*u6jv3IT) zhF^Oa?#@8wL{W*i(^;mVb=nMoNk+ zX|#w+$G$)-wZ&9ZGUSb}R-Dm9XTk688mavlYA8O`k^0N~WP`t{hS$Zp(*HZ62tUu_ z#JtKWpFRonfJLuqL31@^h*<2|Yo^1wB2zGu((uH_w5(VPS?L%>uxoOJ$`^%PPeM|N zRM+eoGNm^oLR$vtpdP{T3o3oq;EeXiqPaFp#uyO>Ju!#W96BtAm3bNW%-jL(3&BV=K-2^WF=%q`~m~(eFVOwxg-}#e>H93R=Iwts8`sVp%6QHV@4IZNkR6N^IYmet45cB z;Tc;hS9P{LPjxxZhDzZ5XWJTyh*U{4l8*0)Cr z>r9vtO(wkJAZ-zY*{&Pft>`(*K z{$p@@#^~$h{$uOy@$>|6`uPCxgv^!u^8}y846Lu{QPJ54vXboDzyZj=7uxJ z4Pzmu`5bXt98QY7prBkcq*QrIFL$dR$P+_OYw&O_h{oR$)U$timPZQq<(qy#l4Bk(uw6;kY}0$NIJ;Ph3BEXlwS zwk+imo?`@k6vuREuT^a%y0p;9cYpAx=BKqp=rAXg8;Q>{y-L~yYBBginG_TtR2=Pj zJ}d0O(@hZmqi_E17d;~PZ%8WIUi8dj0MVim`sv~t$-W_c(ePnuG(JT@#^Pf&l+;gT z!*lN%$V33*#DwUrJG~t z@)QZEoS@?pEulr-ImRx&X+FgJ6cQ2hH6sb7AIgrXmA?N)+FO}~Fl%-uZI>@_k3k`@t~-1kauC2q(V82YE-#+J{+|MJR%VY&zuEsT>Ar`EG;hXRkb+Cs93oAk@PBM56{G9D`nS_86e}1 z8lx}6DmS1iHmEu#9#z#q2oS~4N*TNSUG3%&{N@oe_3NF#(X%6823tw$GOTjr>K>hBYJq; zl-V&JGN?!NyO(+H|FVCF;^n`$+68sX zK@Qkr6@pR`RTC7!mO9rH`9ghK5aJVv)V3U_`}r<4gHmFDcIkgC%<82!Wqe`}XPg@y zm)zS4&cL5Ljd@U&KANz6%78Npn@No$`cse$WI0v8b=d08WfQ=3 z$OP?F4S7okEA6ws5fmut`kPM1?|va36YL1GAC~&UK#~@FuVd^_+s3u}oM~hHhJF-j z3=&PMhoTzJ5)G1A%0|Viq$O{GkKR~fVtF|Yrn_X=I+-*gMP?IXbdt1lJuC3n1Wg!5 z@am+*Cl^3772M0;?uw2kS4{Nz>kzeQuJ&COa$6L62FFwk#2bfLZB@?zb} z#j2T0O?fLXW2fJ{0sFO4<=Q!b?MVRTGzPIDui+!|>M#~%jm!@ePolM&3{Dqq z2*-@lWH=H4oj#B~v zzFKq{Kw-OPVy}y+g~ysu)H9j1MfK9UjTX9J^;0OdBJ2=5R*kxxznpOCLzTeTqMTv=Gu4dTWg9IO{Hy)E; zkmyDSj3@V=Zw>v>msy4Umh*(-iq(i;Eio{T=SCN6?H+mt4aPUizYGl<~iI&}7suAwmmeuX=^=Rpm(Zl?`y3qqE;c+zidU7YEH)pNS`KCNE}&+mF}abm+< zWcP8=<}wlsyN|H+1cBdR!UPj_wwgh1jQ(My5!ctr_&-4k#m}R*eN-qVqp%_*@Q@X& zm%uUvt8B$Lr_q2x6_mO4fjTLDc!PCqnt%i`Hi1GmHQnan!rryd zN3X6>JGMTZ)KbMEb$w&jCL`74&LYkIp}Mz}ZzH?Nvuvy}m|Vc^xXPxpD4=`W|4HQI zz1F7j8;>dsty_iYLVFQnQALX%R6?o>MZ<4pHSwFTAu6ryVery8Y5n)bY>|%!i-0|z zHb_T=28c;RPtSBUGwtB(_=AD80eLaNA+fsE#-LI{%AcwVxql@G4MbK((WSi_Ss}G` z&NrA7TM`^?zA6*da{yV8y@qmB~B=C z8PcaK7E^#%_fl5cQ1+R}z{rkQ6$r~W#RcSPbW*Nfn{Lg{p&~>U3ewLn=%{?orTg6_ z0xoW60w?qfop+(o`8sK)0cBnX)q%>L15koDUV^o@IZNzJ3`@eazpyyxY-BF#BB6On zO(W~Xd~(n=6Ry!S4=AV%_vV%bGvaJa;l}?X`jk>tPgw=Bu5J`pr8=wkcqjt%BX)Bo zb2ah?nW<-Fq{!p$E!&ZMU12_wwnUx3=6RYajEjTE!zUTsc7#?Dka#ib`(Y)~DEb!& zPmOtr;z%rB@DeD9P?YjxD&_9!yQaBfpFL&v- zUWnYLH*YJdhjw_d_$&s9Z?>UpReDr(_&{OTDNUUc&y0n(nN<^z&OnI!fZtreJP@tV zq^C2Q^JFOQN*QVO&Lrl8_A(p9;z)^*zj6@!w9LPSg?>4eQ+eJM8G)Ce2!JKkjQ1O*<&{m+)d$HS`dPnQh4RmbpX zBE7af-t98#%JyV!64p-7lXBHN$LIG-3m<=>a=ocM+oEz4gCfmYLy=5Y!rnuxBSF?y z-@)6Q$%3mm83nq$hBh)P-4Z(=G0hjbF=@RjLP(8RJDs)NME9iyE?Ue+<6{rPv);!N4)V#EQp&kiSfc~%^K1PI`;ahAN0v(IMZG`Ifi11xzabMwwqx(@53y}txk&? zWg4@kzBUgafoEVDSqG4^c9&LcQ`}DVFUufdcGdWQ9@%A9Q6``YPYh?(@iB$QsYnn# z(XLh%%&w@Loa!s&_8N}6%M9h`Pz_n|U&GeBSLd7A>l!)s6y~HJVvvM8X$+Lj15mJi z@D2~q;T5F$j(3uDF8E!{G*X53_+~s-+Q8L+8J76TB@(lyQ4!7n zWL0MJtJNG@@Efft`26Yi@#Cr0Ow-yI748)`CYicSjcKk`wuTMGX8A$YZQ2XJ9>duz zO&#BxmE~vyd^4VZm5?pC9$)?z&>FMsq!K00^G>tIjBJ7nCplKH{;O}la%EESjK*zR zx>~1IHTem$VKW;$5trwqlwpT>RVHb~5({FSm5+~pSeSyx%5Cn5*cUCQ(&YS$JmNpl zqg?fx;4*SoArjgTQ#}DyaxT_iNpw0pX_49et{jsiT5ANJO83UQLFFl8ys%w`pgwF3 zf*UXY)NMPlUo6D#;Y!-QBqANZq$9Kf7o%1UPS)5yrb7>u{+MZnU1@cC^H$heT;1_* za_{tAAW60BX30uCnp@QI^OtKqZ-^pEPqSkYkz~oU(6e|du0{Vg9GzG~essSW@VQa7 z!mc(wbTs$$^-#awyFW?xd0d1R9ci?VZ?~WLt#v|jVbkL2db6IOCz9aN>iul-3N&Z> z^&!r(nPr=1@3rjh{j_X5@OG&SIC@4ns>Zn3%@0ll6vx@75ZH34?CuX$`MoMy`HpCH z)s}1stpP5+)5l?HBq|=oe7fN)CtHrGDS3+)?NPtaSFU9e#X%%7C#Z&tEI?#&#d;QE zIO6a$pO5f1q*Zb)S8KT&Mjbz8?ODSk-;9v&U{mW&3oK)z{$a27xh6=c!&@zfsz3<% z%Q|2y-`|h?GWlX@G8eXap{Ix0?75wn@)fwIt+H0N zU{)KJ!M@vwch%%FSzWg>d;B_FHt{mqGCZ0cR|_o$S$zEkHhY)fh~=?hc%CavEO|wq($}P@+D&?-!YHK=8RP9ero1$hDWSGa_4!kv&mY z5B1qR&PdN;RM;4AMs}erg*+g#94nzBL3O2bBOMU%X0z!{ry$!b5_1c}hvL!yI2NFMg=AvpiU1FFddF%H;8FjT{8SLg{3RSe1qylkC zLgM2v?U8lWp_d7~c?|SZPRY1vFn%v)kC`}8=c-}cy!s#+CW*RywgfXj;rx(Ok4d(6 zS z5>Lhc#dG?o9`q5)&Dq3Z))|t&VcmLbx zX#-qR!)(@6fLk(v`B(~x*-%trdM~9mDTqkN8>obQOsBg;^+JT=mH7238 z`Q~7(d{~bQN>A;6?QU2agecqF$y$`YCRGle@$a#F+Y@$IZa8+}9Lel<3+YYvu<41; zS0=tt4s4$YyiKkjzx>L97X|bgTQ0ySbwe7yS!= zQXe=c^!HIeXkzV_4YDT7fmukJ>pCj@=f@!Fy>NQBu))E4_GIy~tG__y?VVt0BAR=A<(;Bj`?hRbOxI0pt~I2Ucczk zBQ3d)1=jTjJQ(I|Jz)O&K1MMmes}IlbOs3p%l5Zrx#P(^aK0H4={9t!YHZ3CDK-tgx8Si z`?3eOKLT5j*Ae`FO=Oyvoyo7COctpg(0SVK#6mZlwJJPzA~V2mHX_e9m|5sXZJyXG z* zY~kfTU9fhwUJgJML7sRGKT@2z?8aGUl)C4yo6sToaT4t!T#aWvX$sYHb8VbkF#g;% z)yLKdzuXF#92jgYPfAN0Y*^)>c~#MF-Wr=s&psNFu2^}gDb}48qcAa{(oN9`Iux*5 zxYL(8Y`DmDvP_Wl5=C0B1`m|#jq6|a1 zOZSml?{#~S^DRmi_Lj=+;pK-KsXUYjdPX+z40Kex-xr>}f;d+hr292v{tjl>e zPYXN2EwZjGsk{Dd$A<&ZFA7`typ$$Z4unciJ{X?KLIIB)qf`doa>B_X&Fkcb9hA0t zNDhOpSyJrp$@1khwkEA-d0ejs{5!POo!#t~mVKYB;q8YkuJKGXOrRc^8U+JKePhV+ zWX1+4;-pRwiZ))>=6H@eB3B2k6c}8O0H%zeCfA+boy>n)1+<4Ps?cgcUq@hNy1FR) zzDj+Xw%czR9qfea5rZ$Oe3ZIA_ET=M|Gu~gGs)xFYrL=cLA1^+b}Qj%uXw>Z5Jl|5 zHjOoeFYIQQ92`x79p}~|SAx;XMJDEBZ}syljF93yZ7U!_ z*Fs0lXdEC5V9aakjj1*{JC`u1=6M@(hxih>O5BEe_2c2wl6|ADr(zp$=gV;WVqd76v>kJ+ zY&_C6ogW+U`7QJM`U}E&>eYcuCI5w5>(i9|gqHp1kDo@s7@MOk2AIPqxw}5Jy_U*6 z!h7S-9}bFZ)6x}_?JDi}F)Ou+kjQVFZP&?sVKPOrulEr{<$XoLK{HB}LkqX9x;@9~g%xIKyZFqT!y?JbqRg`E1=(cR^?piXp#>A8@(bu-=##OC(P|k8|ktDdk zmH5H?lVecMKP>Y-W400B85(+XUJ@Vug7GMA3VgP7!yVXk8Hfd4plQZ&>93cHvT@RG zA!~U6e;SX->9%!pz#BBXW2&MrzH@PE=JX>MJ&P|ww&B~g0w??q)VyOi5;*Ua79{=i z(<=QBh6b9KLbHp}Tn`X)x4+ckx?z6u5g55z;S*nSCA{-~dSbnlbIo$u^cgcWdvMA) z0YkmL{0iLMA%LD}%4pf=ef@2B*cb5Wi(npDmeA#c*f@Mz1LYT9J4H-;&!{(E+Tiuk zOMhBSTQ1A^YGy_p;a50uFI4vJvMG=G8=ogi9J}ONeL+Zl@Taau^O!fzfeu5%dw&`` zsmV;w1a}t7m@t`u3^S^b=PcRq-%OX|s#iL8eDOu2Eb!$!xGzM|e zXI{WFJL#Ow(4GuRaqU!Fyi>f2Q zsUyIoLqQRpB^aT&lKJb<{ep5Cd9<#T|1ek4KQDg;YKSDf+Uu#N+$;UqjKZ$+h8Q_L zy9`g6u7YMV@_0;h)W1CN4}s@&o1;74?+_4Z+K@)Ur&wrnTGde8te~r5*l_WZaKg0s3OFO0NB*6!Th1Jc_*VL{Fb0v$QKLP((m~H%v#&Rs()Dz^FZH&qTkiBh{k?IKZH0c0{uX z_AJi;pj^LHr@DI3kRslV52=1%|Fe;aR=LH=fsYcl8TVAY9T9j_yUOYwYS9z2WK__` zE3_Kbd?9dvSiJ^$^7?&gwHEmjGfVozxOUPvX$`1!%CCu+|D(#@kc3l}C0%X!IHWdP zV5$);QEAo}k=t>di+h+rTU$MytvrRM+VMfM(KpJCyl7dc<%HKa!!|8=nb{@4p;M^m z!*x1gkj)y-+&|pk%v3v^uMf+X-=Xbl%6^inK}@>gxhp*J1^crqDlrR1Ma!oT#sU3B zd)MNKe7?auX@AlCj@t988olOKTwY;2%e%AK#lRmfh&R2O0>n3p(Q|L6>s_`o!*yCM z^SHp4-j)LJ4xdi(L2?aU8{|3RtZgZzw>DZXg!!bI;?@G3i zhfOpMM9JmYpx<;3z>wZrIWuqbu5ID+>*OXh-Zba$vImo9*Es1=Ic1KC-o?I!$yP?%I*h?g|}`Jb1k& zBAdbJI2gm**@f^=tC-lB6vGFh5T`HFKKEK+hyKaC0e3z>q0-N0`SHh+>&Lzw*Y6bb z97(--1VN$ok{V~tPu0nt-)2FO6HGVeo$JyQR|ON0mOL(bFkT$^V}#?gWpGc76>Au$=DGpi5$)^UiFRr>3Y z&r`#4^uqVg>cP{m+OsY$HJ3}zDmAWTkF-eO*~+rNW#wUxx>&+2ur7zRyHJ#8^_9DS99-~roE7ka=etBtqnczdH97C+e$(;NpWc49L2-ApN7 z-6QiTENr}pAA-$tRQr+OR%QZ_mUyCPL6{m1H;VCk3{=yFMuI3tzS84-reu8`w~CHe zpUNfV2P-BlJjrmU_U#nlRT=0m+yse!C**Y*LC046fMg5t4z2k^X1}?;-PtL-Ai=`m zCDBk3WB6-Fya;NJn|h(6n+L|p)k{m6;>_u5n=(??^)+M=C3kmbL^>e^=gl@S+clUR z|M5s62i9NwcAfe|Gv|rW=`bk-XsI~g6>##9-tW@$eDNn|_^x!%pGC%~3-Z&2oE3$F zkKL7_V6(|VW@Q79X2`#_04h#Wi~4|rzr)=mbX zo_1|NUP3RDF+Tw}Qt`;x~Z6d!j*UdNTc+ze~$danUtN2j?kdbG(U%=mcz75c5A zRIHEtC=@#jv$v%vFl4N~K7t+pR-KuIo0sxK5)hcBw*6ddx_dvl5mKJw?Y9Y-#4f)Yd*h7svR$$Xta4}yXJfj0ZK$WnZ=`Hs5e<8VO~b( z;#aIW<4m*M-LhfoOJ<+3k(wdzcv(6sST5|BYd6qK?1$%^x$3h9kkZ-`j>t}c)XZn! z-d8xouXq#MuI96Z&;tUeBzXK6_uI*&$<2|L``*K%E1gfHA7zsEzCIXdM}^!j%Xd3^ zpIB;6``#ozzdzolsQXQq1fAb0jgsJN&&5R>;(dNqfIk_=#n%ZSI6e5|aT)*ZBPa;= zzGh!dVuh3{GE3tLa&7D3N0G6?Hzag;w*bR(I}KE;dmy7fDv-o2${@$}A0nZPKZY1Z%>!cZ1H*dk z&&U^(;q7aqrLRnj;`&a!pBCgB$NF=WtrU-&1BC*dxWpzS4f{Gs_KoYZf*dtNG|Kf9 zW0;t^J6IvB3mBK;{7E}`lyQ7&1mjj~kQvXJCpuV423B07|8xt(@|?TeOO$|xq|gmU zwfh)|b^9V=@HmgsAu$=%hl5x)6m~9LXh{TPLtMoW)cg#e*&2S>zNoC7IcD>9&+zxD zzWJAPa5tN0<`qlG1^Q}mS($n`xDoNir6sB+WTJOSCdvC?d#~HLlj#V0dbuXoms^cW zGVQh#r;n06%}C8oO_q!|M0NXS39H^VSHoysr;N@8OkxL6;ImIgqTU}trhwA^@0}5O zrLHey8kPNeZ71;6;_sg*!~L$VKhc+>2$n(}z@4emk$yYQUGLemQ^)ja@3EbvLdswl ziECiXh9N-iOB-n1Xl4C-+f)gcVr z7{z0)h^O#bNjv_~U1fADY+LM{4CEGyzI)Xlzh-D2XlL0EJB6t?vzI2)5M!3iIQBlE zCo~B_pL8*ko4vTY;XFXbt7iR}FSFJMDZZh|M$3OGl`m7TYVr&hkHUbTma9*CH~MaqKNBEQx_ zPv2u}j70cuk~m{d!gZT;>DPro7t)+E_PIfN8pOrB67bx9=&6KdY&rjW#xxuJ{=+{? zPPSc6*YRkU{^nr3BlRJ~ew;D%dJj~ef^ZkVl?s%3!4N>T(Cp;iIZ{ndEEuEtdAgi{ zQ#LrOLk92yI1fN{Qcsmd)LHkxRmA#lv3tS71zUf)UtiZ$xdw|i=#&M^Xgg-USZ|7l z?@z&{CxjZb42)xOOwrPAdy_1GYhvg{1GMPuq-%WL*~Cv|H4W-)^3Da~4NR1NT8wc) zs5NQNyqu`Yw|$50dcBsnp|?EXVg4x)JR0lQ3y_wnhHz(Y;n%~+rm4(>ChZM?yHvT} zsKL1vp`b1>HedN%an2al69`LK3g491KC)PbY+1<#$j=BmiT1ZdV~DPn(Dl`|bR$^= zr@g7D0q_MtEx|L-kV74GWM`GBS=I3IJPH&S3dnEjA%FH-FKzx7C7FJsdKz=2($D;% zWA}94-ju4}{E)>xyw(|W$|hU5PP@NXVW_$lDVD%y&s(O*G|yDXtsQR^>iGrzhC?3k zB#(nE7HCI^!Vnnxf`WVf+db~&iuid-ISWV2PD0si)=#9`Y zZzqEsMycw~@F}~F&wgAN=8EZrH${a{y>(sT;G%64tcA50c3nt&bbGW;Gml zq^E=qDrBf-@0oGrbF*mA`r#jxOLo9<=!qa|a-Ky*;-7=`tzHjuv?5sFi!uV zC9RaGkss$9zj5vDQHeds?UYYfZwi*2uVcLOvK_WPb%iO>uc@+n^qtWTIIotPn7xB) zpx@Qefes9Hqpt^5AtL)1I=UCpGU3H>(wBuO&GUgbx2sCJNHbKHvx1Wcnnq&3_P+9+ z;Tqd=Zb{x+aUbf^(0;6MOPbn#w^Ayp_AggY=A&5u)CTwBECJ0Q>aEQDdu~X=(?Y@q z-p-ToW-}TFj`G(d>FrC@&bi;}Y6;Pp^L44EcCPR^b+a|@ehmBAh^o;ZBU{-n3%7NI z43;M|v+vu1Ai|#$)1yZ8&~`9`HQfB{+HhZ=6DY1O;icmn7<**&`1rdK zICEs{GCtB=P$gsyrTS+i17}y2ZR=B&XY@jf3WUZB5BsncYAgjHQk*G@;~V#Qdh*tG z>4ts$1so5L*9X-viwqX#1mP@cXGaCNvqBz*N2Z3IQ;Ja5i z>iw5G$MNqvx6cY<KsG-ugo&n>eXn$E7U4;sy8nRMapj*f^iW8Jhi0Q%)wT zwCs;d;ii{soiXYHHUEH3a*>F~s&z>W$V98ARLEiFzBLkX85_}D!>Om&woU1V8SU33 ziU(JeIhXCbTBIU)-Ngi))3JO!MX%ow=S6r5q$HF8^`?UHb+|nm2(H|oo|Mnuj9x+I zn5J^U&EfchZGF_p;{@1yh>!a!w7^AOBV=(8H`OTALft=ApVr-f)!md8pZGcPAM1VP z^dt~n{feMl4psh>&B$y;yR##BpMTO;;CKS@9R&vVJncu0tVf-}f#+)Qa*mY|!G02n zRo*T-CF$L|_Y8!Kma5Ntx!xdaXm#(}(E{_y%Y%W){piL^c*kbS7zxeM^frQcLJ-Y2 zcBc*2kWX5vv2k}{5!99!o3w`ZdWR3WbMgbJpCi8K(-^9^-!E9E@!>uxN;{aPY9~gi zti5C8g~9yoGN#)`Gj}=E=<}cwXq8P2IULMJ>J{*0^I4{t1j$+CORvi@{mBwAKwXmi z*jWTg56SBrjz9v=+3QtxQrht`Uy%Y!nbH0dcF$Qtse-p6rVlbi8CfXct-1GQSH<+l z{X%2+H-OapLF=GTX6az{eH9{qmrq`0l=bH88OOo+quNV>$v$O;z}6-$**#-w`-eh% z{m94Cwl}Q7N{^5thg5Ji28DYN4UxenyA#B>yRj^!uIbd5#!XPZo7>2$;U2nEU`m7W z%Ftk82R_tSwB+5)`(q{$>W+}~JgFB`N8pLgtoy@Yh~p=yDt6hdHKF|oZn{Se%0Aqy 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

FBMw)WbR92ZoP~yhvC~JNlG-w)o^`YASQ8w1% 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�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 literal 0 HcmV?d00001 diff --git a/static/onboarding.js b/static/onboarding.js index 05582576..bd0f9650 100644 --- a/static/onboarding.js +++ b/static/onboarding.js @@ -265,6 +265,9 @@ function _renderOnboardingBody(){ if(currentIsOauth){ const isReady=!!(ONBOARDING.status.system||{}).chat_ready; const providerLabel=esc(currentProviderName); + const codexOauthPendingBody=currentProviderName==='openai-codex' + ? 'This instance is configured to use openai-codex, which uses OAuth rather than an API key. Use the button below to authenticate with ChatGPT, then continue once provider status refreshes.' + : t('onboarding_oauth_provider_not_ready_body').replace('{provider}',providerLabel); if(isReady){ _setOnboardingNotice(t('onboarding_notice_setup_already_ready'),'success'); body.innerHTML=` @@ -288,9 +291,10 @@ function _renderOnboardingBody(){ body.innerHTML=`

⚠
-
+
${t('onboarding_oauth_provider_not_ready_title')} -

${t('onboarding_oauth_provider_not_ready_body').replace('{provider}',providerLabel)}

+

${codexOauthPendingBody}

+ ${currentProviderName==='openai-codex'?`
`:''}

${t('onboarding_oauth_switch_hint')}

@@ -314,17 +318,6 @@ function _renderOnboardingBody(){ ${_renderOnboardingApiKeyField()} ${_renderOnboardingBaseUrlField(showBaseUrl)}

${keyHelp}

-
-
🔑
-
- ${t('oauth_login_codex')} -

- ${t('onboarding_oauth_switch_hint')} -

-
- -
- ${showBaseUrl?`

${t('onboarding_base_url_help')}

`:''}

${esc(setup.unsupported_note||'')||''}

`; return; @@ -552,23 +545,100 @@ async function nextOnboardingStep(){ } /* ── Codex OAuth device-code flow ── */ -let _codexOAuthSSE=null; +let _codexOAuthPollTimer=null; +let _codexOAuthFlowId=null; + +function _clearCodexOAuthPoll(){ + if(_codexOAuthPollTimer){clearTimeout(_codexOAuthPollTimer);_codexOAuthPollTimer=null;} +} + +function _setCodexOAuthButton(enabled){ + const btn=$('codexOAuthBtn'); + if(btn){btn.disabled=!enabled;btn.textContent=enabled?t('oauth_login_codex'):'...';} +} + +async function copyCodexOAuthCode(code){ + try{ + await navigator.clipboard.writeText(code||''); + showToast('Code copied'); + }catch(e){ + showToast(code||''); + } +} + +async function cancelCodexOAuth(){ + const flowDiv=$('codexOAuthFlow'); + const flowId=_codexOAuthFlowId; + _clearCodexOAuthPoll(); + _codexOAuthFlowId=null; + if(flowId){ + try{await api('/api/onboarding/oauth/cancel',{method:'POST',body:JSON.stringify({flow_id:flowId})});}catch(e){} + } + _setCodexOAuthButton(true); + if(flowDiv){ + flowDiv.innerHTML=`
⏹
OAuth login cancelled

Start again whenever you're ready.

`; + } +} + +function _renderCodexOAuthTerminal(status,message){ + const flowDiv=$('codexOAuthFlow'); + if(!flowDiv)return; + const ok=status==='success'; + const icon=ok?'✅':status==='expired'?'⌛':status==='cancelled'?'⏹':'❌'; + const title=ok?t('oauth_codex_success'):(status==='expired'?t('oauth_codex_expired'):(status==='cancelled'?'OAuth login cancelled':t('oauth_codex_error'))); + flowDiv.innerHTML=` +
+
${icon}
+
${title}

${esc(message||'')}

+
`; +} + +async function _pollCodexOAuth(){ + const flowId=_codexOAuthFlowId; + if(!flowId)return; + try{ + const resp=await api('/api/onboarding/oauth/poll?flow_id='+encodeURIComponent(flowId)); + const status=(resp&&resp.status)||'error'; + if(status==='pending'){ + _codexOAuthPollTimer=setTimeout(_pollCodexOAuth,3000); + return; + } + _clearCodexOAuthPoll(); + _codexOAuthFlowId=null; + _setCodexOAuthButton(true); + if(status==='success'){ + _renderCodexOAuthTerminal('success','Credentials saved to the Hermes credential pool. Refreshing provider status…'); + showToast(t('oauth_codex_success')); + try{await loadOnboardingWizard();}catch(e){} + }else if(status==='expired'){ + _renderCodexOAuthTerminal('expired','The code expired. Start a new login flow to try again.'); + }else if(status==='cancelled'){ + _renderCodexOAuthTerminal('cancelled','The login flow was cancelled.'); + }else{ + _renderCodexOAuthTerminal('error',(resp&&resp.error)||'OAuth login failed. Please try again.'); + } + }catch(e){ + _clearCodexOAuthPoll(); + _codexOAuthFlowId=null; + _setCodexOAuthButton(true); + _renderCodexOAuthTerminal('error',(e&&e.message)||String(e)); + } +} async function startCodexOAuth(){ const flowDiv=$('codexOAuthFlow'); - const btn=$('codexOAuthBtn'); if(!flowDiv)return; - if(btn){btn.disabled=true;btn.textContent='...';} + _clearCodexOAuthPoll(); + _codexOAuthFlowId=null; + _setCodexOAuthButton(false); flowDiv.style.display='block'; flowDiv.innerHTML=`
⏳
${t('oauth_codex_polling')}

Starting device-code flow…

`; try{ - const resp=await api('/api/oauth/codex/start',{method:'POST'}); + const resp=await api('/api/onboarding/oauth/start',{method:'POST',body:JSON.stringify({provider:'openai-codex'})}); if(resp.error) throw new Error(resp.error); - const{device_code,user_code,verification_uri}=resp; - if(!device_code||!user_code||!verification_uri) throw new Error('Invalid OAuth response'); - // Open verification URI in new tab - window.open(verification_uri,'_blank'); - // Show user code prominently + const{flow_id,user_code,verification_uri}=resp; + if(!flow_id||!user_code||!verification_uri) throw new Error('Invalid OAuth response'); + _codexOAuthFlowId=flow_id; flowDiv.innerHTML=`
📋
@@ -576,60 +646,19 @@ async function startCodexOAuth(){ ${t('oauth_codex_step1')}

${esc(verification_uri)}

${t('oauth_codex_step2')}

- ${esc(user_code)} +
+ ${esc(user_code)} + + +

${t('oauth_codex_polling')}

`; - // Connect to SSE poll endpoint - const pollUrl=new URL('api/oauth/codex/poll?device_code='+encodeURIComponent(device_code),location.href); - if(_codexOAuthSSE){_codexOAuthSSE.close();_codexOAuthSSE=null;} - _codexOAuthSSE=new EventSource(pollUrl.href); - _codexOAuthSSE.onmessage=function(ev){ - let data; - try{data=JSON.parse(ev.data);}catch(e){return;} - if(data.status==='success'){ - if(_codexOAuthSSE){_codexOAuthSSE.close();_codexOAuthSSE=null;} - flowDiv.innerHTML=` -
-
✅
-
${t('oauth_codex_success')} -

Token saved to credential pool. You can now use Codex as a provider.

-
`; - if(btn){btn.disabled=false;btn.textContent=t('oauth_login_codex');} - showToast(t('oauth_codex_success')); - // Refresh onboarding status in background - loadOnboardingWizard().catch(()=>{}); - }else if(data.status==='error'){ - if(_codexOAuthSSE){_codexOAuthSSE.close();_codexOAuthSSE=null;} - const isExpired=(data.error||'').includes('expired'); - flowDiv.innerHTML=` -
-
❌
-
${isExpired?t('oauth_codex_expired'):t('oauth_codex_error')} -

${esc(data.error||'Unknown error')}

-
`; - if(btn){btn.disabled=false;btn.textContent=t('oauth_login_codex');} - } - // 'polling' status — keep waiting - }; - _codexOAuthSSE.onerror=function(){ - if(_codexOAuthSSE){_codexOAuthSSE.close();_codexOAuthSSE=null;} - if(btn){btn.disabled=false;btn.textContent=t('oauth_login_codex');} - // Don't overwrite if already showing success/error - if(!flowDiv.querySelector('.onboarding-oauth-ready')&&!flowDiv.querySelector('[style*="error"]')){ - flowDiv.innerHTML=` -
-
❌
-
${t('oauth_codex_error')}

Connection lost. Please try again.

-
`; - } - }; + _codexOAuthPollTimer=setTimeout(_pollCodexOAuth,Math.max(1000,Number(resp.poll_interval_seconds||3)*1000)); }catch(e){ - flowDiv.innerHTML=` -
-
❌
-
${t('oauth_codex_error')}

${esc(e.message||String(e))}

-
`; - if(btn){btn.disabled=false;btn.textContent=t('oauth_login_codex');} + _clearCodexOAuthPoll(); + _codexOAuthFlowId=null; + _renderCodexOAuthTerminal('error',(e&&e.message)||String(e)); + _setCodexOAuthButton(true); } } diff --git a/tests/test_issue1362_codex_oauth_onboarding.py b/tests/test_issue1362_codex_oauth_onboarding.py new file mode 100644 index 00000000..669fd90e --- /dev/null +++ b/tests/test_issue1362_codex_oauth_onboarding.py @@ -0,0 +1,182 @@ +"""Regression tests for issue #1362 — Codex OAuth from onboarding.""" + +from __future__ import annotations + +import json +import stat +import time +from pathlib import Path + +import pytest + +REPO = Path(__file__).resolve().parents[1] + + +def test_onboarding_codex_oauth_routes_use_post_start_cancel_and_get_poll(): + routes = (REPO / "api" / "routes.py").read_text(encoding="utf-8") + get_idx = routes.find("def handle_get(") + post_idx = routes.find("def handle_post(") + assert get_idx != -1 and post_idx != -1 + get_body = routes[get_idx:post_idx] + post_body = routes[post_idx:] + + assert '"/api/onboarding/oauth/poll"' in get_body + assert '"/api/onboarding/oauth/start"' not in get_body + assert '"/api/oauth/codex/start"' not in routes + assert '"/api/oauth/codex/poll"' not in routes + assert '"/api/onboarding/oauth/start"' in post_body + assert '"/api/onboarding/oauth/cancel"' in post_body + + +def test_onboarding_oauth_rejects_non_codex_providers(monkeypatch): + import api.oauth as oauth + + for provider in ("anthropic", "claude", "claude-code", "nous", "qwen-oauth", "copilot", "bogus"): + with pytest.raises(ValueError): + oauth.start_onboarding_oauth_flow({"provider": provider}) + + +def test_start_payload_does_not_leak_provider_device_secrets(monkeypatch, tmp_path): + import api.oauth as oauth + + oauth._OAUTH_FLOWS.clear() + monkeypatch.setattr(oauth, "_get_active_hermes_home", lambda: tmp_path) + monkeypatch.setattr(oauth, "_request_codex_user_code", lambda: { + "device_auth_id": "device-secret", + "user_code": "ABCD-EFGH", + "interval": 3, + }) + monkeypatch.setattr(oauth, "_spawn_codex_oauth_worker", lambda flow_id: None) + + payload = oauth.start_onboarding_oauth_flow({"provider": "openai-codex"}) + + assert payload["ok"] is True + assert payload["provider"] == "openai-codex" + assert payload["status"] == "pending" + assert payload["verification_uri"] == "https://auth.openai.com/codex/device" + assert payload["user_code"] == "ABCD-EFGH" + serialized = json.dumps(payload) + for forbidden in ( + "device_auth_id", + "device-secret", + "authorization_code", + "code_verifier", + "access_token", + "refresh_token", + ): + assert forbidden not in serialized + + +def test_poll_returns_high_level_status_only(monkeypatch, tmp_path): + import api.oauth as oauth + + oauth._OAUTH_FLOWS.clear() + flow_id = "flow-test" + oauth._OAUTH_FLOWS[flow_id] = { + "provider": "openai-codex", + "status": "pending", + "device_auth_id": "device-secret", + "user_code": "ABCD-EFGH", + "code_verifier": "verifier-secret", + "authorization_code": "auth-secret", + "expires_at": time.time() + 60, + "poll_interval_seconds": 3, + "hermes_home": tmp_path, + } + + payload = oauth.poll_onboarding_oauth_flow(flow_id) + + assert payload == {"ok": True, "provider": "openai-codex", "flow_id": flow_id, "status": "pending"} + serialized = json.dumps(payload) + for forbidden in ("device_auth_id", "device-secret", "code_verifier", "authorization_code"): + assert forbidden not in serialized + + +def test_cancel_marks_flow_cancelled_and_poll_stops(tmp_path): + import api.oauth as oauth + + oauth._OAUTH_FLOWS.clear() + flow_id = "flow-cancel" + oauth._OAUTH_FLOWS[flow_id] = { + "provider": "openai-codex", + "status": "pending", + "expires_at": time.time() + 60, + "hermes_home": tmp_path, + } + + cancelled = oauth.cancel_onboarding_oauth_flow({"flow_id": flow_id}) + polled = oauth.poll_onboarding_oauth_flow(flow_id) + + assert cancelled["status"] == "cancelled" + assert polled["status"] == "cancelled" + + +def test_expired_flow_reports_expired_and_drops_sensitive_lifecycle(tmp_path): + import api.oauth as oauth + + oauth._OAUTH_FLOWS.clear() + flow_id = "flow-expired" + oauth._OAUTH_FLOWS[flow_id] = { + "provider": "openai-codex", + "status": "pending", + "device_auth_id": "device-secret", + "expires_at": time.time() - 1, + "hermes_home": tmp_path, + } + + payload = oauth.poll_onboarding_oauth_flow(flow_id) + + assert payload["status"] == "expired" + assert oauth._OAUTH_FLOWS[flow_id]["status"] == "expired" + assert "device_auth_id" not in oauth._OAUTH_FLOWS[flow_id] + + +def test_codex_credentials_written_to_active_profile_auth_json(monkeypatch, tmp_path): + import api.oauth as oauth + from api.onboarding import _provider_oauth_authenticated + + active_home = tmp_path / "active-profile" + realish_home = tmp_path / "process-home" + active_home.mkdir() + realish_home.mkdir() + monkeypatch.setattr(Path, "home", lambda: realish_home) + + auth_path = oauth._persist_codex_credentials( + active_home, + {"access_token": "access-secret", "refresh_token": "refresh-secret"}, + ) + + assert auth_path == active_home / "auth.json" + assert auth_path.exists() + assert not (realish_home / ".hermes" / "auth.json").exists() + mode = stat.S_IMODE(auth_path.stat().st_mode) + assert mode == 0o600 + store = json.loads(auth_path.read_text(encoding="utf-8")) + entry = store["credential_pool"]["openai-codex"][0] + assert entry["auth_type"] == "oauth" + assert entry["source"] == "manual:device_code" + assert entry["base_url"] == "https://chatgpt.com/backend-api/codex" + assert _provider_oauth_authenticated("openai-codex", active_home) is True + + +def test_frontend_uses_onboarding_oauth_endpoints_and_no_secret_poll_url(): + js = (REPO / "static" / "onboarding.js").read_text(encoding="utf-8") + assert "/api/onboarding/oauth/start" in js + assert "/api/onboarding/oauth/poll" in js + assert "/api/onboarding/oauth/cancel" in js + assert "window.open(verification_uri" not in js + assert "device_code=" not in js + assert "device_code" not in js + assert "flow_id" in js + assert "copyCodexOAuthCode" in js + assert "cancelCodexOAuth" in js + + +def test_unsupported_note_no_longer_calls_openai_codex_terminal_first(): + src = (REPO / "api" / "onboarding.py").read_text(encoding="utf-8") + start = src.find("_UNSUPPORTED_PROVIDER_NOTE") + body = src[start:start + 400] + assert "OpenAI Codex, and GitHub" not in body + assert "OpenAI Codex" in body and "authenticated in this onboarding flow" in body + assert "Anthropic" not in body + assert "Claude" not in body From 3ad8846a27b73d14b2d1e4e3ce5c42c742661a70 Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Mon, 4 May 2026 10:55:23 -0700 Subject: [PATCH 3/6] fix: show TPS in assistant message headers --- api/metering.py | 55 +++++++++------- api/streaming.py | 34 +++++++--- docs/pr-media/issue-1617/after.png | Bin 0 -> 41792 bytes docs/pr-media/issue-1617/before.png | Bin 0 -> 40795 bytes static/messages.js | 17 ++--- static/style.css | 14 +++++ static/ui.js | 37 +++++++++-- tests/test_issue1617_tps_message_header.py | 59 ++++++++++++++++++ .../test_pr1341_context_window_persistence.py | 2 +- 9 files changed, 171 insertions(+), 47 deletions(-) create mode 100644 docs/pr-media/issue-1617/after.png create mode 100644 docs/pr-media/issue-1617/before.png create mode 100644 tests/test_issue1617_tps_message_header.py diff --git a/api/metering.py b/api/metering.py index 6edf2961..c4696d24 100644 --- a/api/metering.py +++ b/api/metering.py @@ -1,17 +1,17 @@ """ Hermes Web UI -- Streaming performance metering. -Tracks Tokens Per Second (TPS) across all active WebUI sessions, and the -HIGH/LOW TPS values observed over the past 60 minutes. Metering data is -emitted via SSE events so the header label can update live during a stream. +Tracks Tokens Per Second (TPS) across active WebUI streams. Metering data is +emitted via SSE events so a streaming assistant message can update its own +header while the turn is running. Architecture ──────────── -Each streaming session is tracked independently. TPS per session is: +Each streaming session is tracked independently. TPS per stream is: - session_tps = total_tokens / (last_token_ts - first_token_ts) + stream_tps = total_stream_deltas / (last_delta_ts - first_delta_ts) -The global tps is the average of all currently active sessions' TPS values. +The global tps is the average of all currently active streams' TPS values. This correctly represents the system's real-time capacity regardless of how many sessions are running or how long each has been streaming. @@ -19,8 +19,8 @@ For HIGH/LOW tracking, every stats snapshot records the current global tps (only when > 0 — idle periods are skipped) into a rolling 60-minute history. The max/min of that history gives the peak throughput observed over the past hour. -The ticker in streaming.py calls get_interval() — it returns 1.0 when sessions -are actively receiving tokens so the header updates at 1 Hz, and 10.0 when idle +The ticker in streaming.py calls get_interval() — it returns 1.0 when streams +are actively receiving output deltas so message headers update at 1 Hz, and 10.0 when idle so the ticker exits and no idle readings are emitted. Usage from api/streaming.py @@ -28,15 +28,17 @@ Usage from api/streaming.py from api.metering import meter meter().begin_session(stream_id) # stream starts - meter().record_token(stream_id, running_output) # per output token - meter().record_reasoning(stream_id, running_reasoning_len) # per reasoning token + meter().record_token(stream_id, running_output_deltas) + meter().record_reasoning(stream_id, running_reasoning_deltas) The SSE `metering` event payload: { - "tps": 47.3, # average TPS across active sessions (real-time) - "high": 52.1, # highest average TPS observed in the past 60 minutes - "low": 31.4, # lowest average TPS (excl. readings < 1 tps, to ignore idle) - "active": 1, # sessions currently streaming + "tps": 47.3, # omitted/null until a real reading exists + "tps_available": true, # frontend must hide TPS when false + "estimated": false, # never show byte/character-size estimates + "high": 52.1, + "low": 31.4, + "active": 1, } """ @@ -60,9 +62,9 @@ class _SessionMeter: def total_tokens(self) -> int: return self.output_tokens + self.reasoning_tokens - def tps(self) -> float: + def tps(self) -> float | None: if self.first_token_ts == 0.0 or self.last_token_ts <= self.first_token_ts: - return 0.0 + return None return self.total_tokens() / (self.last_token_ts - self.first_token_ts) @@ -148,12 +150,15 @@ class GlobalMeter: if not self._sessions: self._window_start = now - # Compute global tps: average of per-session TPS values + # Compute global tps: average only streams with a real reading. The + # UI hides TPS entirely when this is unavailable instead of showing + # placeholder/estimated values. active = [s for s in self._sessions.values() if s.first_token_ts > 0] - if active: - global_tps = sum(s.tps() for s in active) / len(active) + active_tps = [v for s in active for v in [s.tps()] if v is not None and v > 0] + if active_tps: + global_tps = sum(active_tps) / len(active_tps) else: - global_tps = 0.0 + global_tps = None # Prune readings older than 1 hour cutoff = now - _HOUR_SECS @@ -162,7 +167,7 @@ class GlobalMeter: # Only record this snapshot for HIGH/LOW if there is active work. # This prevents idle periods from flooding the history and keeps # HIGH/LOW meaningful for the past hour of actual throughput. - if global_tps > 0: + if global_tps is not None and global_tps > 0: self._readings.append((now, global_tps)) # HIGH/LOW from the past hour (skip near-zero idle readings) @@ -171,9 +176,11 @@ class GlobalMeter: low = min(active_readings) if active_readings else 0.0 return { - 'tps': round(global_tps, 1), - 'high': round(high, 1), - 'low': round(low, 1), + 'tps': round(global_tps, 1) if global_tps is not None else None, + 'tps_available': global_tps is not None, + 'estimated': False, + 'high': round(high, 1) if high else None, + 'low': round(low, 1) if low else None, 'active': len(self._sessions), } diff --git a/api/streaming.py b/api/streaming.py index 1ff71227..2e5c30f6 100644 --- a/api/streaming.py +++ b/api/streaming.py @@ -1620,9 +1620,11 @@ def _run_agent_streaming( _reasoning_text = '' # accumulates reasoning/thinking trace for persistence _live_tool_calls = [] # tool progress fallback when final messages omit tool IDs - # Throttle: emit metering events at most every 100 ms so the TPS label - # feels live during fast token streams without flooding the SSE channel. + # Throttle: emit metering events at most every 100 ms so the per-message + # TPS label feels live during fast token streams without flooding SSE. _metering_last_emit = [time.monotonic() - 1] # fire immediately on first token + _metering_output_deltas = [0] + _metering_reasoning_deltas = [0] def _emit_metering(): now = time.monotonic() @@ -1631,6 +1633,8 @@ def _run_agent_streaming( _metering_last_emit[0] = now stats = meter().get_stats() stats['session_id'] = stream_id + stats.setdefault('tps_available', False) + stats.setdefault('estimated', False) put('metering', stats) def on_token(text): @@ -1642,8 +1646,11 @@ def _run_agent_streaming( if stream_id in STREAM_PARTIAL_TEXT: STREAM_PARTIAL_TEXT[stream_id] += str(text) put('token', {'text': text}) - # Update global throughput meter - meter().record_token(stream_id, len(STREAM_PARTIAL_TEXT[stream_id])) + # Update live throughput from stream delta callbacks, not from + # byte/character length. If a backend cannot provide live deltas, + # the frontend hides TPS rather than showing an estimate. + _metering_output_deltas[0] += 1 + meter().record_token(stream_id, _metering_output_deltas[0]) _emit_metering() def on_reasoning(text): @@ -1655,8 +1662,9 @@ def _run_agent_streaming( if stream_id in STREAM_REASONING_TEXT: STREAM_REASONING_TEXT[stream_id] += str(text) put('reasoning', {'text': str(text)}) - # Track reasoning tokens in the meter so TPS reflects all AI output - meter().record_reasoning(stream_id, len(_reasoning_text)) + # Track reasoning deltas in the meter so live TPS reflects all AI output. + _metering_reasoning_deltas[0] += 1 + meter().record_reasoning(stream_id, _metering_reasoning_deltas[0]) _emit_metering() # Pre-initialise the activity counter here so on_tool (which @@ -1690,7 +1698,8 @@ def _run_agent_streaming( if stream_id in STREAM_REASONING_TEXT: STREAM_REASONING_TEXT[stream_id] += str(reason_text) put('reasoning', {'text': str(reason_text)}) - meter().record_reasoning(stream_id, len(_reasoning_text)) + _metering_reasoning_deltas[0] += 1 + meter().record_reasoning(stream_id, _metering_reasoning_deltas[0]) _emit_metering() return @@ -2459,10 +2468,15 @@ def _run_agent_streaming( _turn_duration_seconds = max(0.0, time.time() - float(_turn_started_at)) except Exception: _turn_duration_seconds = 0.0 + _turn_tps = None + if output_tokens and _turn_duration_seconds > 0: + _turn_tps = round(float(output_tokens) / _turn_duration_seconds, 1) if s.messages: for _dm in reversed(s.messages): if isinstance(_dm, dict) and _dm.get('role') == 'assistant': _dm['_turnDuration'] = round(_turn_duration_seconds, 3) + if _turn_tps is not None: + _dm['_turnTps'] = _turn_tps break # Persist context window data on the session so the context-ring # indicator survives a page reload (#1318). Must run BEFORE @@ -2517,6 +2531,8 @@ def _run_agent_streaming( 'estimated_cost': estimated_cost, 'duration_seconds': round(_turn_duration_seconds, 3), } + if _turn_tps is not None: + usage['tps'] = _turn_tps # Include context window data from the agent's compressor for the UI indicator. # The session-level persistence happens above (before s.save()) so the values # survive a page reload; this block only populates the live SSE usage payload. @@ -2567,9 +2583,11 @@ def _run_agent_streaming( logger.debug("Failed to drain pending steer for session %s", session_id) raw_session = s.compact() | {'messages': s.messages, 'tool_calls': tool_calls} put('done', {'session': redact_session_data(raw_session), 'usage': usage}) - # Emit metering stats for the header TPS label + # Emit one last metering packet for the live message-header TPS label. meter_stats = meter().get_stats() meter_stats['session_id'] = session_id + meter_stats.setdefault('tps_available', False) + meter_stats.setdefault('estimated', False) put('metering', meter_stats) if _should_bg_title and _u0 and _a0: threading.Thread( diff --git a/docs/pr-media/issue-1617/after.png b/docs/pr-media/issue-1617/after.png new file mode 100644 index 0000000000000000000000000000000000000000..0d18929e89917b2ec934672bc969e83d3693b4ff GIT binary patch literal 41792 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 t%ZU8P997iK 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 S<$v#e#qFD>H>&mT{rex|qJfJ5 literal 0 HcmV?d00001 diff --git a/static/messages.js b/static/messages.js index 7b8440d5..bc2ddee3 100644 --- a/static/messages.js +++ b/static/messages.js @@ -903,6 +903,9 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ if(typeof d.usage.duration_seconds==='number'){ lastAsst._turnDuration=d.usage.duration_seconds; } + if(typeof d.usage.tps==='number'&&d.usage.tps>0){ + lastAsst._turnTps=d.usage.tps; + } } } if(d.session.tool_calls&&d.session.tool_calls.length){ @@ -984,16 +987,14 @@ function attachLiveStream(activeSid, streamId, uploaded=[], options={}){ }); source.addEventListener('metering',e=>{ - // TPS + HIGH/LOW stats for the header chip — emitted at 1 Hz during a stream, - // silenced entirely when no sessions are active (ticker exits when idle). try{ const d=JSON.parse(e.data||'{}'); - const el=$('tpsStat'); - if(!el) return; - const tps=typeof d.tps==='number'?d.tps.toFixed(1):'0.0'; - const high=typeof d.high==='number' && d.high>=0?d.high.toFixed(1)+' high':'—'; - const low=typeof d.low==='number' && d.low>=0?d.low.toFixed(1)+' low':''; - el.textContent=`${tps} t/s · ${high}${low?' · '+low:''}`; + if((d.session_id||activeSid)!==activeSid) return; + if(d.estimated===true||d.tps_available!==true||typeof d.tps!=='number'||d.tps<=0){ + if(typeof _setLiveAssistantTps==='function') _setLiveAssistantTps(null); + return; + } + if(typeof _setLiveAssistantTps==='function') _setLiveAssistantTps(d.tps); }catch(_){} }); diff --git a/static/style.css b/static/style.css index 0a15b46b..e428982e 100644 --- a/static/style.css +++ b/static/style.css @@ -2665,6 +2665,20 @@ main.main.showing-profiles > #mainProfiles{display:flex;} .msg-role { font-size: 11px; font-weight: 500; margin-bottom: 6px; opacity: .8; letter-spacing: 0; } .msg-role:hover { opacity: 1; } .role-icon { width: 20px; height: 20px; font-size: 9px; } +.msg-tps-inline { + display: inline-flex; + align-items: center; + margin-left: 2px; + padding: 1px 6px; + border: 1px solid var(--border); + border-radius: 999px; + color: var(--muted); + background: var(--surface); + font-size: 10.5px; + font-weight: 500; + font-variant-numeric: tabular-nums; + line-height: 1.4; +} .msg-time { opacity: .65; font-size: 10px; } .msg-role:hover .msg-time { opacity: 1; } diff --git a/static/ui.js b/static/ui.js index 842a080a..6060e4db 100644 --- a/static/ui.js +++ b/static/ui.js @@ -3179,15 +3179,40 @@ function _messageHasReasoningPayload(m){ if(Array.isArray(m.content)) return m.content.some(p=>p&&(p.type==='thinking'||p.type==='reasoning')); return /[\s\S]*?<\/think>|<\|channel>thought\n[\s\S]*?|<\|turn\|>thinking\n[\s\S]*?/.test(String(m.content||'')); } -function _assistantRoleHtml(tsTitle=''){ - const _bn=window._botName||'Hermes'; - return `
${esc(_bn.charAt(0).toUpperCase())}
${esc(_bn)}
`; +function _formatTurnTps(value){ + const n=Number(value); + if(!Number.isFinite(n)||n<=0) return ''; + const fixed=n>=100?Math.round(n).toLocaleString():n>=10?n.toFixed(1):n.toFixed(1); + return `${fixed} t/s`; } -function _createAssistantTurn(tsTitle=''){ +function _assistantRoleHtml(tsTitle='', tpsText=''){ + const _bn=window._botName||'Hermes'; + const tps=tpsText?`${esc(tpsText)}`:''; + return `
${esc(_bn.charAt(0).toUpperCase())}
${esc(_bn)}${tps}
`; +} +function _setAssistantTurnTps(turn, tpsText=''){ + if(!turn) return; + const role=turn.querySelector('.msg-role.assistant'); + if(!role) return; + let chip=role.querySelector('.msg-tps-inline'); + const text=String(tpsText||'').trim(); + if(!text){if(chip) chip.remove();return;} + if(!chip){ + chip=document.createElement('span'); + chip.className='msg-tps-inline'; + chip.title='Tokens per second'; + role.appendChild(chip); + } + chip.textContent=text; +} +function _setLiveAssistantTps(value){ + _setAssistantTurnTps($('liveAssistantTurn'), _formatTurnTps(value)); +} +function _createAssistantTurn(tsTitle='', tpsText=''){ const row=document.createElement('div'); row.className='msg-row assistant-turn'; row.dataset.role='assistant'; - row.innerHTML=`${_assistantRoleHtml(tsTitle)}
`; + row.innerHTML=`${_assistantRoleHtml(tsTitle, tpsText)}
`; return row; } function _assistantTurnBlocks(turn){ @@ -3837,7 +3862,7 @@ function renderMessages(){ } if(!currentAssistantTurn){ - currentAssistantTurn=_createAssistantTurn(tsTitle); + currentAssistantTurn=_createAssistantTurn(tsTitle, _formatTurnTps(m._turnTps)); inner.appendChild(currentAssistantTurn); } const seg=document.createElement('div'); diff --git a/tests/test_issue1617_tps_message_header.py b/tests/test_issue1617_tps_message_header.py new file mode 100644 index 00000000..1eec88d4 --- /dev/null +++ b/tests/test_issue1617_tps_message_header.py @@ -0,0 +1,59 @@ +"""Regression coverage for issue #1617: TPS belongs on message headers. + +Product decision: +- show live TPS in the assistant message header while streaming when real TPS is available; +- persist/show the final TPS at the end of the turn; +- do not show placeholder or estimated TPS when unavailable. +""" +from pathlib import Path + +REPO = Path(__file__).resolve().parent.parent +STREAMING_PY = (REPO / "api" / "streaming.py").read_text(encoding="utf-8") +MESSAGES_JS = (REPO / "static" / "messages.js").read_text(encoding="utf-8") +UI_JS = (REPO / "static" / "ui.js").read_text(encoding="utf-8") +CSS = (REPO / "static" / "style.css").read_text(encoding="utf-8") + + +def test_tps_renders_in_message_header_not_global_titlebar(): + assert "msg-tps-inline" in UI_JS, "assistant message headers need a TPS chip hook" + assert "msg-tps-inline" in CSS, "TPS header chip needs an explicit CSS hook" + assert "_assistantRoleHtml(tsTitle='', tpsText='')" in UI_JS, ( + "assistant role/header rendering should accept the per-message TPS text" + ) + assert "_formatTurnTps" in UI_JS, "TPS formatting should be centralized" + assert "_turnTps" in UI_JS, "settled assistant messages should render final TPS from message metadata" + assert "tpsStat" not in MESSAGES_JS, "live TPS must not target the removed/global titlebar chip" + + +def test_live_metering_updates_only_real_tps_and_never_placeholders(): + listener_start = MESSAGES_JS.find("source.addEventListener('metering'") + assert listener_start != -1, "messages.js should listen for metering SSE events" + listener_end = MESSAGES_JS.find("source.addEventListener('apperror'", listener_start) + assert listener_end != -1, "apperror listener should follow metering listener" + listener = MESSAGES_JS[listener_start:listener_end] + assert "_setLiveAssistantTps" in listener, "live metering should update the live assistant header" + assert "tps_available" in listener and "estimated" in listener, ( + "live TPS display must check availability and reject estimated readings" + ) + assert "0.0 t/s" not in listener, "unavailable TPS should render nothing, not a 0.0 placeholder" + assert "'—'" not in listener and '"—"' not in listener, "unavailable TPS should render nothing, not a dash" + assert "high" not in listener.lower() and "low" not in listener.lower(), ( + "message-header TPS should not carry global HIGH/LOW titlebar semantics" + ) + + +def test_done_payload_persists_final_tps_when_exact_usage_available(): + assert "usage['tps']" in STREAMING_PY, "done usage payload should include final exact TPS when available" + assert "output_tokens" in STREAMING_PY and "duration_seconds" in STREAMING_PY, ( + "final TPS should be based on exact completion tokens over measured turn duration" + ) + assert "d.usage.tps" in MESSAGES_JS, "done handler should read final TPS from the usage payload" + assert "lastAsst._turnTps" in MESSAGES_JS, "done handler should persist final TPS on the last assistant message" + + +def test_backend_marks_streaming_metering_availability_explicitly(): + assert "tps_available" in STREAMING_PY, "metering SSE payloads must explicitly say whether TPS is displayable" + assert "estimated" in STREAMING_PY, "metering SSE payloads must explicitly distinguish estimated readings" + assert "record_token(stream_id, len(STREAM_PARTIAL_TEXT[stream_id]))" not in STREAMING_PY, ( + "live TPS must not be derived from streamed character count / byte-size estimates" + ) diff --git a/tests/test_pr1341_context_window_persistence.py b/tests/test_pr1341_context_window_persistence.py index c3e30fb6..42687c75 100644 --- a/tests/test_pr1341_context_window_persistence.py +++ b/tests/test_pr1341_context_window_persistence.py @@ -38,7 +38,7 @@ def test_streaming_persists_context_fields_on_session_before_save(): # Save call follows shortly after save_call = src.find("\n s.save()", block_start) assert save_call != -1, "s.save() not found after the post-merge marker" - assert save_call - block_start < 3000, ( + assert save_call - block_start < 3400, ( "s.save() should be close to the post-merge marker — block expanded unexpectedly. " "If you've added a new pre-save mutation block here, bump this limit." ) From 89099928dbac38dc35a6c0150f057e6cf1bb6f82 Mon Sep 17 00:00:00 2001 From: Michael Lam Date: Mon, 4 May 2026 12:08:07 -0700 Subject: [PATCH 4/6] fix: make TPS header display optional --- api/config.py | 2 + docs/pr-media/1640/tps-toggle-off-default.png | Bin 0 -> 47673 bytes .../pr-media/1640/tps-toggle-on-hot-apply.png | Bin 0 -> 51370 bytes static/boot.js | 2 + static/index.html | 7 +++ static/panels.js | 18 +++++- static/ui.js | 9 ++- tests/test_1003_preferences_autosave.py | 11 ++-- tests/test_issue1617_tps_message_header.py | 55 ++++++++++++++++++ 9 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 docs/pr-media/1640/tps-toggle-off-default.png create mode 100644 docs/pr-media/1640/tps-toggle-on-hot-apply.png diff --git a/api/config.py b/api/config.py index adb4670a..5a635a8d 100644 --- a/api/config.py +++ b/api/config.py @@ -3082,6 +3082,7 @@ _SETTINGS_DEFAULTS = { "onboarding_completed": False, "send_key": "enter", # 'enter' or 'ctrl+enter' "show_token_usage": False, # show input/output token badge below assistant messages + "show_tps": False, # show tokens-per-second chip in assistant message headers "show_cli_sessions": False, # merge CLI sessions from state.db into the sidebar "sync_to_insights": False, # mirror WebUI token usage to state.db for /insights "check_for_updates": True, # check if webui/agent repos are behind upstream @@ -3207,6 +3208,7 @@ _SETTINGS_ENUM_VALUES = { _SETTINGS_BOOL_KEYS = { "onboarding_completed", "show_token_usage", + "show_tps", "show_cli_sessions", "sync_to_insights", "check_for_updates", diff --git a/docs/pr-media/1640/tps-toggle-off-default.png b/docs/pr-media/1640/tps-toggle-off-default.png new file mode 100644 index 0000000000000000000000000000000000000000..ffefd438a637eaf1007445d1d633a012d54e35cc GIT binary patch literal 47673 zcmcF~cT|&GyC>>V6hu^-^dksJ7Z4B-@JJJoUP4Et_ufgcP?X+6C<03FkxmE@0RidK zTL1wAgp$w$gd`LE?ssRcxogdxHEU-7^S;Tu>$9Kz)ZhN7tF1;u#X?0vK|!PbLRp`J z;_595ip#;*FO&ay)h(MwL2;WxUHKowpikQiH=Y@yh@?Hodl@#&&rGjbJTug#d&mGm z_6utb6+M=y8f-yVWrNdkCH7_ZD8>1zmvB?#YJ2Cktb9~DJgWI^U;gzgH*em2Br&+J z*!4?1hUx>=KFAV-9+Yq#{v;z27dDKO8S$pM{^2%xa0&_}Ca&k5j|iIU&#!MPANv2i zJh?A$<>KX6MCr|o=Nr0w@rx&g_WxCdXFUFi-Vl&7SXU~{hR{DaE(mzKpvzA|@l9CO z@EXPE6os%powGX(MV0et^bOZQk(csqQU`~L_$h?KRt=*|Wa&fufeu%?X$M}=$#YHV zOB594X%*z@pw@Vqv{;(gn9Rm&E5o-%eI83)Ppf!pNBShjWL|v~R1~rcmuP2U)b~-! z`*PN*95uKSP6m%09;pm<0r4KN>%qVi{lFxteVYaxC7y2bB@wJjt( zVBpjdw|5dQ8P3w`2AIEZ8Hs4HUSbk>>Af_-{h2vNKOHuGnhP| zW?W{8?ezSJkqFHCj{Js#&CksUu2L-$KOJ$An5XF9?$Yq%!+fx~UP;VmkmJ0Kt)rks z6wu49ueRVz7iO2?tZj?<1}U3 z*0(Y4xvk-2Rynu-Sr&et#^t%*iI-EDU0rVKIo~32WHu_f(8kBz>Q6M^MJUqU9Ba{^ z20aN}`OSHif}&K`5PXTE^g(vFfE`0f#LwRh*T4AC-qgom*Hbl<;&D?*PXbg93!*uS z4NnCk#lLn_r$!&Sj&rS?&sZyfT%!7}QT$TPFTY9gjK|bns-oNYOEjBR_~4?E?C*Ad zI@u`5cT4+MT^zuyPdXi{1$_$gBnp*<_Ef&sAX3i#OgY8OLrgP?;7;cDUs2p-rq)&0 zH!`IfUZTyi@!?KE&i6|ECzRnB06sCIOjocSIy5+dpZxxI9+RpG)!yZJ6Wu z+?Wia93UNCRG9DsfoSUIBp^-Wmsl?vQ1B^}S&dviT`YoJyq=Rq0J(g-K_=%#`7ae# zLXO}l5vjnUAr*(zfye>>?=BTaCPJOBQ<>w%V~u$Kv?{HxW(3P4t1wjAl>+ao=~qyAAj$`CK$a5ZQl2M%xuyci%K+-8;gydxgfss6+fc$@8I^5}H4^yvM`pfpDT(t1 zdz#e%L@xO3qG3*Leys(PZTd(#_x=J$XlZx_FU>?QmBCcm$qCH>h#-Go=dXZ}9l~hU zf<7qdXn{f9L62`=5!*UpnbQ#5lby#YBmi{!&5hN@PCona?#dEke=#q!yZR3IQV^~q z1frla{5FvnR3i_dn6!w#2qnXRLYpNemb z;0573Bpg!LPWV$P$`KnIj8fV0fAoSO13>S}9oQ1r+ii}U~ z;jgs?v#Zw)`Wu5rM5>fzo64K+^GiyD#+&w@H%oFbPqlcjb{5hoj?Cxs{h??>itE}` z#CQ6pOlv$e?nq?h$~C`%@Uwpw*tMXRp7J63dx*TP^W$g@L$PUDn&+DuBzb=?rSsEg zt|CIMPIpu`Y_TK3m6eo~ssS#R0D86)+oR2pcypY~6wGoaY9iwKA9j25zO9^%!|W*< zz3rol0;oDmWB0<=!->-twIunoJsl^{XNKt+MTOPPbC)Ce8h6xFE`QAqw_7j0w$23h z2yn&lP|Z>u@V50vC;5Q2m70XckR3T`Q$|i5 zOJ>Q~#Kb@z%!OT{%fUchlQ1ARTZuB8ap4bs$LfVH>pbxv2vCz>YPZ7jd#dzsDkQHm zGcxNpuMn6k#-Uj!maO$ywq+iwTa`IY%R&Ftq>V^%IHRv^ zuFRa4$>&nZ6u<%~xA%oACuJfCgx-sq58rI1w~j1Rc9Z{Wn{64lDl~` z*D(TpYaF_^f6NkG^N@l`E-1;1n*70#CtqB5b!Q>;#l>i)vXTcET8~^j?)}@m@pwh) zMjME?&!>tn^uGA?OiTZ?6e(H!)yQ{slF`ZF1m|s^aBy$>;v0pbFF3AW2{RCSplFIu zY_Yb_1gaqc9>#w*oWdooUm2x_86iz4A(j_7Dg)O!wIz zgc1ho>JJsv$E6i$P3pk8ljOcjkdHqHL>_$r=XJ1O9ikbSI79^;!o)nQ$|liTpmmfuWX{SQ4d zTQ5Tf-5@`T9njz6zr`E&U}2{YJH8U0BIMdGm%$}Q<$SL7BHi8esot@fgW~9dhwROJ z$A!m1SHO3`o^u(0-2{2wWuKoF}0@?@&iitbliE&Xrdp1XD3otNg*Rv4ytTo$FS`2MjnpveAGcXw_ z7pR!D`9mCz-#+H4QEP*2!#b)BsTF}YTwiIA1k{*3NiaCF7;uxkXG!nDIL#_`8P?4O zP8%S$j9zf7d4#PI1%<`)9mfWf$jpcDHhaBQ-yGhN&+cm|C|_itO+=wl`dUlIlSTH< zkz+3YA&VF6GC|?rT6L|(s-PuB;gf>E*{h}7)c_du$FJAovuPUH7XMO+hq5(hJ7BvC zE#5Xr+#1Xnm~ zRr;vOL-N9gK7Rla>w=Yzu!=Iy!71`@_&d*l$2)0_rkW&)QIU)VL3GZ5 zZ?S?PzXHFtr}zz(HY-jLK0gCD7=c1h^7dHHv}WZ~1r%@{_61whXl09SPFBrcZqTMl z=-1Z{@by*nT`Q&Vx`WP0?s%nm&s;Z&?)L51b+a#vxyb6rj#aL<`Lq`|$|EVmHs zftTLWwNCcD`N7Rxr$)lO-!-OZH2FxYZ$M{5l*W^HCn}K7?O~?Ths}~KPY$mu6BE8* zO`lqEIXNSW=Gw|i!^lphFS}&x@K=un&yHd;)P-^Ug*~E(D%SbI%2cJ!f#)J}B=->m zXv~sp2ip8tW$<@*`1#>na~~(M(Y}``oJaHVI=fgP!4vCO#e`g*4E7A5+QlAjj)d>b z*Mt)e7mv0pVnDyTgB7dh_#50z6+C^Q4&~yxmU_^m4}B6$P%}jMQbNuag0Ovh>!>=z zmBA**>b%jePZ5+QQ=Oe>`wuAt1Z`KuHVJ3ru=B0UB_mcl>=rGTyJ16cyGSa8M=F9~ zOK642ovGYB_3Apyys`;iEZ96**%w|)h=sXP(|0W7hPyB3k4@K}^z358pBe;oF47gBjV8wzeJ?1VZiEF+4J$T%&)n=*J`s%QRLpmmP%*POFH77>eh|FEF2AINC(*2V}sVez-?t4&=US#rYd!6 zOXt79Q?rORX@?(Iy751cJP zb7v&Dj+xS60d{+$;&m=z`+Z4QN_(E{<`<&vqKSR$`Xss6wQ$fX7QITC#@lj)Y@EvU zZqb5Js1)3b7$i3AX!+-_)g|qF#BWzdTI+YQ_n^@12)Guvb**m>(WJm-+wxj*yqo8OI8=HK>1wj zm$wXzfyeJ{rO?~7&RnlM1_<+0ODzI@H8y*(4&iOx?VSwRa7Jdr@B%R3NDe2pxgh-f z`%thWW{NJv`}JaIo|N^jSqW&ANEz@!z^j`OfPPorcqL>~$L#DJFQ{>iL(}?j7U#aM zApdud=fE{Q$0G;A(a^TN`F3X5P}3G3I3--0i_3aU3XQ5aA`r$Sa7>Wzzv@_Zo*eJC zOUl(c1Z>jTEVae_)V^XSxVq-1{yMJ4rBGGXURs(*34a;oSaYwfH7w?d4cWJ59rhCt zQP3K#aF;-^=PPB1Etfn71`yvq#)90pPSLhpTiJIR)t#ZgBdl%BI`_6+)wm-A+j@@L zSfxqlBVU-L^RB0EPCyAM8fZm&#tN$t!uK@r5vcR zhDQQrRN8)A(ovAlH{a^HR3!LALtot&qH13hKG>WoHXGh9f!Q%)&<>1oXp4^L*n3st zaMa4K^ZKd9{x(mYb6?5uPU?B#73bp6&FKS!s}rubXuR?m&fAn%%}`1`4rNv{>hzR2p5dqf55Zcf z9A-#6-g-nh>|m|ac~Rtchp-RG>$Y%S9*C+np3`~3A?vrx79I)sJ z?C0naRCKm(4fM-aU}tsL_E{7_ostC7?B&N0tFhSjkifAfPMsjW`~3WtqwZ(#09%&s zm0!nbB$8o_0xhf+ivf8~MpNy7h34qywPGX6Kuw^9PI_nWb&Udm?PII7%$KKq z`is>|jsB|@i6;*xpJq=>dR;Lwn zHuQYF-mYVXC&z?BCnkwftVeK zwu?90N`Rk#iNVNkqt-=P|C%qXO)3o+WCTY zBmD2l?Q~-<0Zh&E4(I3T9D1YU1+@lFoheh43oc#Z+PRVu>3>h`!5F-f2?Bg7Gay%P zP@hMLyqS5j`N2V(wao3{cXJ6`@_;%Pjq5*XJ5QAoNgUSLg$n+jc@fqIJejX8u*g-ck_kOL(%QW{RLIolLxL-HPfj&xuMvX zXgT8@CU?$lOn5+VRD@euJ7Htcb6sJ6)cUh*sn-|uN4}_A_kNo5rpkCI9M2>TKr$78 z`49OAiDz3;SOiHODf{IMO;;By<+ZasnN-ku&}#>Wbn=!^c>HZJ_wnSxXmK#{BXC{d zhcn-Cp7^3~34gG4-%&dBAC0I1+QZ;g!ZIdI7iDc8;V($Zu6WVqf}t zShAWJ*s^&=TPWPNc4dgRuwIDwrCIA50mp5{EO&srv&gjtjjSNPWS!gC@3q5b9}FWu zLSI^)!_%DW0thV|I;fx2lh|{E3V?l6Zu^P1Cw~amQtW5}s(J0Fc#esr?Yot3K<+1) z-KVh(|JS{(>R3?$^huSD$zjK*v(?;OT(72v?fx2yHPDX6*uq&l-LkQ*A2g1&Y&bii z904Bnu0DT2Iy{%aZd*tk*^ke7>m=q7ez}gxC8y`6AFd-SaQV{CO|6O`pDE4N+;gu! zLH%pexn_#4y)YbRo2-?_Fk7i@-d*14$x=g`JAqLj%Vn>!POCHCzO6?rLiwCZFNGZr zNoz`ZHYQ5px@hx&C(B3zesx&%Hl6Rfrl|bE$?9t1X|6o{>E8FQ0=2{@vnrGY!i>Fm z^a0qhW@6%`LUeU?bpb&F1_z&wmy92Vv_YYse7$gI;*-%_tomi#+&esc5_ZzOx<=;1%um~X-m8U$6Y;D~vTGzFz7zr}L4+?14!U`d z(=dzw!YwtukU0$-AQGa@n%e6Eu^b3OW4lGg!zoVl_E)B1UwkVZ7Tuf$aGqu%<{WI^ zfs_cuUAj8z@9y6vgm`(^{MKqDB4^ch zA(H@g&47SmRJ^oxh4HA242)^rF8T^35%cqlR$ItFjw22qH1wpJ9n%WREqn|x^ZBID z+BTOu0}J6UsB)#Kq)_}49a@xqLToDmYXU=O46iWDY}bUUXn5#Gg!f<%Anfqlr6_;w z=6KV(C5_?QcHxQTmUOq{y&^M@Y$9;(+N@6EBRkHeHqdyD+w@nE4zAi)wp-GqNAHfnRH+dY3|=Z$yz9>h^Q;>tz*VHEj5B?QKOvj^3AeOz zw6B~gUoFd0cvL&wID?$((x~X~|17nD_rKLJJty3fIxp=hTX^S~ee99^>;~s{g+7cW z^|;!qjTARp_fK{xrcJZThps!SRRSMyeh13Gbdo?O__rM$hJ%%N!HE-!N7MO%idK0K zbZLxu1=N%u>s3I3wJ<0Y+N{DNeXC9XUiuuXw1*+OH0(w!W~NxNlXbz>3gNYI<9!R^ zM|*OVA`|dVUWJR8lO66K7&CPsYosY={@d2CtgD(jYnBs{rn9B%Z*plys!5opajwF3 zCEVe_kcHpVucU8{Yl`9LE4m4;y4m-+;kc20lY64_KO{_wOq*X>Mwu=+|4tefyWdNE z5~h0i!EJ*MIzXr4Z|A%8sf)D^$xSIg(cwS69}JhQ)`BOp`Gv1n7S)(C)*bH3wk)kd z<&(GOS3eqKqCw{&;R!0$9^(k0UDt#qEFORO(J$T_-~Bv3G$_$V9=_=BgHEu_rd6eJ z_B&~cl&jsU_uQFz4Ru(E_B)<~yLDi0){!iMYKQGhNezdzHn#=B!wE4e2l_+A=6#9<59G*wSyqQ~xYDM_$FwQNlP{!NbXo2hqzUd#w;_Y4x@?D-Z>CUgs&dz?E z^T_7qDQCXn;=A!N!ucjIFVSGlG6eY65BiW++9>uuDR{N>t9_L10KzIWw7VO1$tL;I z)jds3ZL=vJH^mtTJ3HlX?Opnxr5xB|b^3i}Cjn(192hWhdePRg@c3kMsi=j83ds$Z zs{dpL5>hi8OYz?RiEfndJYQIiKNjrblmpv~4s43o#`%CD@a2hRJKww?XI6W`Yi~Yy zfscQA=Y(bumIXC8n|ca?q2t_hs^v|j`x+deUAsoTACZe(v<$u zp?FJ0Nwlb9*3Ii6anlRXb9|CI+dFk0_VPj|JR8!hDYdY0&ORQKV1Fxj3ndh zkdF0nFnU=rw70h>av)MB&&_R+re?Y>AjoRr?F|UD1`Cu9jEnloETt6~fj_S%3ge712Aufot6 zR3!t;546h=$N%iJs0;NKHF}nsEUK0lp2AfJfj|7Jh&0*vigmz^p|0l4_a1Uijtpev zgn1D*7y7RDUvqE4Vc72IPmA4qLwq$WI%0$pY5L9h37*>klmlaqqv@GgkD{ol`z;p+ zTTZ~#abh{xO^Nb4$j=;^X4@L)TXX-81vIpkG+hWt?@D7;4wVLn#@#z@_dP~N&kG;1 zaV!Smk2Tc_eEj`sXxxJ~e%g3n$)J%14rf{pq+d|#VZ!ezxaJT?(5PO^N@(NdxlJ;76gWwFB=%VSx~EVk!g&(Pu02w@I&i?5R5 zq3Y&<+K?i{P?3jEAX}oggWAYF*Ogmnuu4F9p><+tszJDX-z+(M_IXW=ff^P&^!$}- z!vo+Gt?sZVp4XYY<>nBiBtv=37zz{1TJ-6u2U3DJ6+KZ#uNN7!6KRM>q*oRO<&+ym zU$=(&4bCy?#dH@em>!uIR z4~N;{`%WhM8(NPax59x2_Gao>k5~n?NmQ-(`ilm_Dfnm(2S*ri>y$(XMbfenUL>j> z$BP%|$yZ6R+>|nUlLyxe<(+m4AN~PnDf?aRgQvPVw&la(+rB%vOt1O=#|wOhtq+N@ ziltBTW66L5$z-+^zcGrFJg8OF!JsEB-gj`6fj1oj8=QXeG$lq&m3CWd?TC&qLgmD3 zO@A`r$nl47RXnKMOfZUaK3MD{v9RNK?@(hf&9zlpMWN7><&MC`+5JOwT}WHIHhZ3G z{BysS){vu#(b2$j0`88U%FWrbSxj3r;umhZwkSK@Q}+n5{&5{s^Fq>QU{-j*|M=kj zfWu3o?PRe6kTdg<9*Xx+JzQuBH0AUZeg=RNfgGUf68)l-ty|URz*^mAE9bu?Z9~FR zmNB<5(SZ+Udpj5zEzdXez`!$FP<5SYGr!7NyLBB^Wb?-I)sjX}Xt?Kkht6Tr6qZLk zpb81eU2a#bnFMkZ$D5ydCUp|qe`~X!9l9gj+*PA$01!RVYn~Rto5%tkH>kz$!%nvkt(K4;_Ciq zI0jud2Tn^X@I8ueZBm=*7))i(+P4CdbI-qc`$f}&o9AQrkzdU81>8;}n;cIM(o?Vg zrJNS-+>7pIkOja#QOlK1+OTNp2QzAF#Us{U`@mY2qVF}xej6W`P*hZul-&8%(ab2! z6?Kz&ciwZ0mc3<;#Z4;v+YnFcp6E{+`nz{cBM}zlh&KnQJ)Kc&Fw0F~pfrJ;PVv6s z5gan+gE~Ex{OK}cu?QmXB|AA~o4^jqtq$8Z>D-(|L`OVs4f&G}e_)o=+B~ze=^~LW zQ<=EgJv3zOmY$sInKajIUNl#0XmpW%D`Ix}&krrbFt}@04 zM#O5uE;rhW^(vL8cfSts_HHm6T8a81@yLVk-*JLxMRsdHx>!sMbB*QsBJ<~VkLxvf z?9pBPUbcop0*;RBFBGp(9xv9|jz}_LkT9Tey0Mv+VZ+Mng6GQ~k2bEp@ks(%7cQ}o z)tkW9hGMmtaBO^c95&LWV`yltpms-Yh1aXg@WcWYNgdAd=vTV}u*K51FPx};x*UyK zx%Mbq%SVQj`g3dH5>s6!IidUvrG8|`FFfCi8*A|z6Za4X0J2-EkA5gt`}sD15nuz8 z&JRSIt|J z+o!rdR?oux+S+SeHoZTzwhD!lZeRLkR=7l;BVs_-%vRf(v zSz+R*!w!SsxnoX$ZoZ|zB#&O}soH*-bV(I|77$QQ;dONk`{8gv-@=UyEcq<(o2g|x z!MB3R$sPG^dxb0JX6^I$gRk!}3i>-3ie&=5jI%97o-Vj^V5BOH9^`my4fxf}o_t-n zDS6V;-`%Yuo>^(rl`bRWD4hN}wa-hb_xm*$DkdgCWaq-9kzR@RS3{kP6rpZI;pdd% zWKBhXU?tJNQbC|X-^QT%28^0K3J>}uw#?+7R_&*!kni*mWZ3Y__A(bQawhv_WM*a` z2Zw@{ReN={2CUTq!S-3hL}-n?i-%pOePjrjuKt^3&|h!nM|YBhV`KJXVlMoD3JRll zU9T>l|6g$=|1F%%qWj3(+Z%>kgh$^3KFhLhIh=N%4=}GXCNmxR0K^-emI|fzVcMEj zlkOAVzrWJtxy0QN$BIi!%M3sF2GeJ_OJ!fwr1*R-g?!LI#B3p93tw%nY);cI!hDxf zcm&7C#)?$YYXyn7+VL2v5}iED#%%yvMDHIL{|wdC2NX!IG3+ZBm)46;TqqS0*UWY@ z2j&IYz;b?02S2#4C@HaS&ozYatuW{dwA)=mS1)%_Hh3<{^7H$n$Eg)K?ygTW`>`n`X9U977-Cq@Ou zAUNfYY(9ERi6JYOOYg58nYM?;`;EJ`-_BS-T43SWMM}uUgXv2>d0`h>0z zw3vM^BDTOaont`iMkI93+C&+gB={~%`k?7S&IDM(>;ek&ZOCBx&ex(1xLqF=zXWb) z-jZriUx0`%nXIXqFNB92Z;RW#2!~k^=RFZn^QP`se_x&S^C{B*&1?TVYg_uItQPts znu8eV=M?A&q=kL`UBW^1omOm#y<6XjP>P=2wIMe{Y=2i2&6A)<#P1)&3-6r|h`JW# z?*VZO2fJN_qJaBu#uYo$*3+IdyS=9gv%+Q(YATYD+WKc&cB6S`a#gePZJf?!1L~Uc znHhfjZf{kZrQJdUHBU$V6$u4&{@9JFhETzUEMRvLt=>t~CQFelj8M|-7VBA1-G;#= zA)M9pX5?`Z44Aq4L*-oEpt9d8vg2>Lm)nU98(;qbx}soe;)-;9o7G>gv)B+edY=?!BWy0U z^Y~FY>TSI1t(c^y6ZTT`IA6VY=+~uG*NV%^dc5tBII;HuXr+^{H=_QWx z&cCtebaL8jv#uk>mvewJe@@(_ad-ZHz6zq!l2y?D7YUD8Pfay|h+5Y@n{g2#LAvo8$=HX<6&Pv78=_uho zCWZ)<0u!UC#!^Gbzzss=UW?&S#NmCh3(y8dDYHOWbuB#*K@8awMO2b`lPHRKDkUte zRQ||wsa=gX)gOb@))+n7EVH$3A|Xh)NaJj7-8$H*^v&C|%(E)S_|H}@v@mr~p?=ND z516U~76+_iRa3ta(Z#-F7CA;~vM(VKr&l!}W#^_fWoq&C{7NfzU2UBNRa_z8p zb+emOM+>#~>xqih{rzLIj80>Pdapi{sx9#YFi>@c#Za^K=FCy<8mQAQCA8ug1e(WTtftuXzanfylUk%Rlz# z|2F)s#=$&Os@Jsurxh}-73V>Xfuo|N?kR*N)tl(+Z;llqFtfg2kz2e1SDNnq!Syw0 zfK}|HwR7e)R93IiybHu2`L3?j*ZY;#*mQ*?J{8}4koxSCCr@^vh;2vi!0mgf>FM_)fA7rWX56Ioyp`>LO>te|?mipC^bM+WzYt6*$UbL3XsIwM4O0LaKrvIg*K3p1K}rWiZ= zU>u!O-pgA@P`hW3p)xlC)~O02>@Fs5s6+0vS%i!gx#TZ=b~&>yC7#bB4XY=ZJjZlQR1Hcm{N7^bN{V(O+ECgdEs$mPu*TF9#jeY zT_P{AIg>nTU3H8`g&~(zmcSzuNXG+T{|0qhGEjk{wCABA8O$5}&|M#FVwg1gP%!v& z=@Zw2sVEyuEt)oEtJ?i_e+*^4IACNYIg#PiejpOsJwNGBV4Rhguj(UxU=)r8-t?H4 z7Qn%?qx_{M4O<@U;7ppkwYb6csPyBu7>uX$aiG5p@H=o;Ri#$1`HT^_WAC)|eTAD) zr~9k%kP^ynMy8pr>mBf=&nZZ-lqNIE#{9tQszC^N@sUM9Q@2Anc}o6%qllKd6%au9 z1)WVG6HU;!48(+dUpxEMHLDm=rVt*MNHr%t9V74Nir(6*8clNXUDudY^SsS*sew^Y z=NVv>$Blh^{`@1tRoZK?YBNlZ)7Jou(c{YO?SZ4}f2wG9z#aqb$Fk+%(^6rMt7N); zmLelZpYf=7+W>8tOKLt5=WQL!b*H4W&_ZOw{Rf7BSYPg3f!;rFgkNH4>MCZt@OIw+8 z!rhc<_;HIt=9q=5*n&x^z?>qj(hu_+?c6GJKBqnIYr9t6Ho3?C8p-qXmS>4CE0*)f zXGV8^4|kiwFeO%=SMv)lMPa7)a{R#FxQGC3_HQ8o=obTny&$8|Zk(^Oby4t4>GOui zt1i^~rmRw9BW~d~lHsAV5%gf;+Vjgc3e#q8w}TVR0%|IM{4FTZrfKX}lQ=Eh9jfRo zuXG^$$vS>^XkIJ8uLo39szGFNnqbQXFQHAq_5|r|egGPj)G2&#oP5>#W8V7-+Acl@brEZlc zuU>Voga~P47J7m_ffa;%CCItICy>ufmnSp)tKs^}e$uwoBPsEEW@ZstZIN1*OUNJN zyh0*bH<`*FTDp~{CXKLY zIGf2jPYa{`V=3t$mcLQ`657q88h1F3;tNz6@sLW<)er0M=-6J6aa|2rLVy4L+z^=) z*cf&^%SS~W%P4%N(m$x9NGKiRT^q6fl$|Z@^IJ)yXeCyZ@p~^P6GNeKwDV*2%in~# z2)Bxhd#KYAUplxNF1>Du$@c+#lm|;OF(s$*HqAbqzgS|(zp>wd;&Qfo8>G#ORb%L4 z{p;?Q^RTvw3!5){sL^>`%K5_l;t2bSb%nM)@j$xH&dOY-@G#IvYK=F)aGtfho9?4* z4I3;roJ$!_N+oYrIh-o6CbiG5Ep#b6vy4E*=dsC{zOH%U4<4(C)remL;%q&ts~tzG z$2!R!Sr@;CRI)LFAzGj+s~I1r?0S>pDV2~9~%Py zf%GN%>=s8Df=qcc?cAq=YM32+Ux0;}aOguf0iA4BK?vi8`(1i0fV>p?^D|!Y^mn*i zAO?Q+THogMcVD5HEe9S2X&?{n3Of}!<1%fdh=ul>S-2tI)xdtg)Ap!7-m6|fx~ZlL zq2nrMpR19h6K}G~QSj_qH2uSfCCeaJ1ns2DC_QN@Aj z9PbjCOe*T(Di8u-^$j1qbda?qE53;bWNX%;&a`9zyMSMehzPHSdF3fAkZmusi9VFdLocSHW_8|y2yvYmmC0)cAc{8 zOJN}UC+UvMseGvrVf;~oT;~NKkb*)|ty}h$Aeai=UvWMlH~c3YL7oE}Lxli#&i~cM zPvXv8gTP29yIjvrjxf@24*oye+S9?GOgnUSnHcT6M1 zr|rN{6QOi$JAUsy?Hbje>MmJS05A{P$ug>tDl96}$$eU_R}d8(9Ky-z2}9bGO{v1n zq@*)!>p_`e@V_nvOgyW7^X9sqDLH|gUtoSOzSt6e>xByHc*k5297Fccva+&x1yue6 zzHF|1#{N<(o{2ozvz=e-)6Xj8eS<^o%lp@h3O^--hL@1d-W7jl@;Rzv5ccPm0R^(> zzjc}acNLJYH#-dI?kWaLY20_YY6LM|D*2w^zQtXhD}Ff3P_eq^f5XVizibx|;3V3Q zdMOr>$A8F5HsA#Mn#O0^GQ-!v#L5J7{BeE9m-dw?gQ!Cj&6kMK`=w7R1}(}@Afn(+<8kBjl)L!-B(KQZ<&9mvRf~JEs^w;UB9`(M zYW0b?H;*}?83EQwBp_CFAZ?CThy5nLmCpK)F=rn8 z`3pnbN2~`E?O=wijH;23+U|#7Uq(e{HXQolUh8b5#1g8#KEr6d2?dxs+)UF+VmZve*!vQJtGWiG;;p(36<$}hw4>rL~lfR|Y0 zTFt0ty`@#&(LtQC{=-{4(gAC)CL5cq;$qm?BsL~#rwg}kK4+e^J^L;a#eh9_8y79d zQ;QBQfNi`$RzvpY*)E>dbfc>)0Idm&Nb8@TWXW}ut zn6h7ROP$L|6CK}>=7f4+aZe9es93~wLcXx~Q}Aj_aoE8Iwc^g?OzPr~Wnq6rs}ynk z{c$8+cusj7^0BM#bdo!@sLY*d%c5h+qHXzRK0R0Zxp>XHqD!(UhFmk#ePkbEFy}G$ za}QCVGy0gCDRjO4aIvxZ=^g2<_s)9O;m86{xuazI28~Qet-spqnEFo+=AF0jSAam4 zt1#E_`OpUuw;UrXbANAa*Yn2= zVbol)s!?s$pOZL-TLF|ngc3fG^KLxj;}S8cjuf%Fz?{2PdBPHywZY>OVF!S{vL+8>?4+N-jz zf*EBc?iy)?jy`!_^>V41+cNMpB+OhpciOCpK#1-+7qB<{I41psYXWY1SW>2A)oSrv zqT#uP{^kUa$WpcS`SGV6LI75V4IvpYzd56s*NGF*5#A@mGrj8tCp+#atbEUU&(Aae zcifzO%}1E~`}bkr8+XiCt%8=bXLhS<)K+eBp15~o+E`LWyvKXe-qNLm79@{<at-~KW>sWy_LXeRfAfFHKBXxdcSaYQ_~1AA zlZYICr>}oTU373EH7O;ZI;V9d^?s+fNHscUYqZF7L2ypxi0v)|YhZPw^W%FY;_)m| z;;v|4Q@^J6XGs@;PFRhaTjG}-Zf@E5bD!-Q1OmA8g&!`d-MucT*wA73*eVR#ml1eh zOx7U{^SlXLatFtEi+QoZQu!olnlpE|vl1F@?rkSA@7M&X3E^ z>bOa57PeGe-$4rG$9Y#3dTk+JO<*kd#tT1=M;`{Ak9N;Fo)`(wZc|=Tc_&q zvDV+q=8mXwZEI6j=vnA-ir~wTK9*%BcD;~2yCT_o%MXDv9Dv0tvRTq3O^$6C@>`xQ zl@PKe)Rd-lD}MdA7=YB~+y>O~YuuL&;IQM$~h{*}yMGRqsoYWx`}t&&a(!L)y@r z#!(T0@%qe<`aTJ3tipUgj2CL zRFu4ABe;janH=1g5U=rLecT1~+Bp$L^-sN5H0927@x!_42F9)UpUu`1`KqFGt-KQ6 z=#^=_YDHv+$z3NVwnN}P;rlob)8lf_yURdF5zF+fQ^z%;j@k$J@#0F&=F07`_!1HO z81sG1ho*#xgy2v-(LUDdy1dv{!>I4h!WWw7lc>nR*Q?TN_8v$g=;R}evlYIusQ0wK zccy!6&7PRq?Blj^3`<>Oht*>b$qSzx5VhRn0lX6fE`LX3F$bZWaL!xUPe=7Wxc#=% zYpV^imH<1~OJq~}B^lOrznrE)_GN+kT?&so=)gykl2#N=oc?$j*Ai7|&P;fJvTNRT zasbwa=HKyt<|%3luTcF!mJ^G#b;P_%zk_4u0pXn_nUl#jpA;1VO$Txes|Kr=*PM( zXg`)?JW4csK$aW=)#OOs&(8{1uSR;d9o0;_c-Q-F&m5nw=Y^my8S{nzI~D+zt}^}) z197dw#L#1u>%1Uwt-G6De#vL$yJDR~n;7UkV`4&cBqF`@pvIOjkwfdNi4fT{Bf9`B z`JL+m*81`yB2wYI9T2k5=VWJhpqcLH?aeIy`>mv_6p%#F`FGvddZxxJDLoSt_0Ho8 z4}CA7ZZ}!{6#sQ&SNFZ)KZflwNaRyRgzUdsWOb=rjPl=v(VDML0Id@=KS>Cy-uJj{ zzj4w~v8vz>Wt9HtIr#0=72+aJ8q^HKmvJZo_=vSmU#+{RemWx;ze7v>Th@qr{+UNW zjqRC6h5Ylh`|^zJMEj%CSO00TR=*#EPE#95@0hzMMrI;PwzDNjk;Y$8FJ7r?`5>3m z=vpeEtq)d)xAYypgZCHryAVRqsNj)y9aWsZ2kSx&MCZhnnr=*oP5bE=v5)1tJkU9( ziDJVA-b>_d*6$W!yh_phjQM<`RfZFHFf!A=9}C;#ivwA5vOV5E(t-E1j(ZNa{IxpC zQ9h3w|Io1_RYYYZ==TwR{9vxGRLp<=q+?#WAz$W+^T|JCzsJj->^Yf}FW*}NX7_Gi zqG&4kN!hE7DLD(pQ0H)-zM55Fycj*}L-5i6)O6L(H+NwC$-*qNd>_J=)30b>k*dPe%nu`TwHI}f#5%ggGr78QWESCJ)9u;+^CfVC4^u&Q|cn~W=@ z_=W2W%eKJ28R9a}{A#I#=shv_j%og~F-uKpUS5h{m!WP`TCLeJ$}4G z=2SuDt$F))7cvTWnlv1vS+A&vjPX|L9C1(4*-hg2#QJY10e#ovr~rcOtifNd1fY4f zGA(M=Ap!J&s3nA~_fc_hDmylz9D~mMfUT*%p(=|8C+8Z>f*iYi*54GrjtdT5rwfddFu%?{ z6P<>clH$**mPC-{2cFZ?PfJ_*U)+&**j!<*5>F5N30?g)Y|B{uJ1C9m){F)?w{Iw;8jr}@5wkef`v3wB*D3N0uW)iJ8iIXNEjY?7|dScDDP z7C@ZftqNP~%vGOcJq3;2dtX{UE|^^MY&)4KQBy9dQ4E)EG41Sh#Bwr92Aw^(g(ML0x!n+m=#CLy$P{O5-;yP{AhVoaB*k0*xC@sWR(RM?D}>1 zx{zi6Lq_j*cH0R!WvHF+>nh&dpUL0 z_$+{c1nE)&pCTZ=gLIYNdkq8?0qIgh?}XkAi*C3B3kL2)PTtz0dF7^V@qr z=eg%T_ph`5gRHE~HRqUP&N0UOzEe|F#{6_DxHR-(?zXVaz^1=AS>M)}{kVAf;3Rk= zYhqcrBv{k>UvJuP7$b z#lE5ueHR4c&<5V^C6CVU0}Z%(K}H2aqn}eYJaIoQ2uPZ|vvJ(n8I?2OXyU|LBkmzS zt4|mqI9K&~ zqqPfPnt{N}BRSFmvRp3eB(i)u;_e!Y^wH|DdG{wRav6=~OO@4eAx5W8g9<`TlA&}(nXOH3iDu4g7h#CiT~UXQu`+jUlQ zXVH+aQ&LbuI}teUY1hi4O(mD!_R=kMcdJ3P~I*)BFCZQgY;|2^7Lz6`H(1 z#E(&D=}o2@+FzYt*3a6Wt22c6A&!qjL&(#DaFYD{da(5EeJ9h>y=XFcVM+Gvw`-2s zk`>y#^|FT%685m7KOu_+69xtHC>7Z0lEI3Cp55E0g+`+!X-TWW-X&h;*I4b{S%XYo zIK24rqxQMPTdVj1gzT>>30e%PH4}f&`7wnQ%h~h+*$x#pvq*2=vbx_h5x^pTwX5-7t((dv`ULX@M&yZ|e`c;W@Yt@MV zQTm%;T$CdTb#QI@^#RdedLPA*f^WkiZX2_-?O+_rFzlJwL;YTLT3*)GyYFMU9}KpB z5HrZy1qhT!g=5?Kl;Wsbvw^6ef4bV6tBq#uNcZcX4)32ud10~^i)kwD{VTV@wAW4p zUxhsJ*zMmlBsmJq(`=tErQaL0EJdYRgg<~N8~8lXoM3nj0Dw|)xw|F$8u>@#rEf1^ zs!XIfRXN;No>zfS$GAS`XCFx$NRyeSh4dbBSPQwrl%ggkN6lWI6Sm3;rqA?+7^=!X zQNNG)n$ETJhINuF!zuGs2J7N(Q`8R)B!d+tE#1aL2f5CJnn}}R&!sV0sXtZy0@<%g z_5Ay|VEvv6%w{Qz4ir{ptNp%36B!PA0u(qoll2_fij@<7q&k!B zp!qUCjk)k!sA%*h2t&Iq!F8w;iNriTl%0Y7bg(w2+Q-(+C}YrB@9+(1`7p2e4J_iv zr^5~OB2J)Bn3wrvN|_9`_FT+|`LR~^jlf+SpvW!97PP9e(oY1MHnG4*MKJu$F5 z6Y9>BKx)?J`bB^d!Hi7^8(rIZgvY?M7A2i-g{%!5u6!-_W}pk->zX1n+*-|8S0PKh zm-f_uQZ*8YK^zsU3LHQi4C5#}I~w}{1T({|6u0dogw?NM9361)7hm)6+oY@us-Hp;Xl zkKh!ph34G>^KI9Q@(w>8+Wqrs0_E3 zb;%yjKV$`V(a29{o3;}pJVKQ{BP`)b+8lKqp^1U4Eh4*G6h9DlL6VpZe6Z- z2ooI#tx|5|);h8fJl|7`!}K0YZgLn1inOiJj&iygb7cu#-5+kLpzl)pTsb1-clhFE zzRU!Z=WgY2cm1g&^`^ZZ=|wD);QW>xdxT!Afw`=YZl0JQ#@af8H_ZikKTeltz&Qk} z;_IEX)-fZKCSeQ@w!M0aex-riKrvN32Yo-I4aE_CKwjs&g4*TjP}}6BhnAaX`|y*I zNz+O>ty0X}I2{K}enThQ5nXout4|uA)^a*Z@d75>M5C2)4T~&kwW!CCjfm+6PR}x1 zBAKIKepSN}S{5}foM;KGdKlzSm+}V1@5JTR(!3ByL^8xt{-&&`o7ty=w1e>!*P>VT zrv!5!x*EEC8wh~Nk$-#}&;T3p`^{0gc?t3TZ}|)**3Ml9$A*L{^@E-@t{_m+a{7vj z-z@PUu(Xy&F-%{DsnroE4{V+M1H`BRC;{a8ad83VBYpgCiECZ#2T%-<_f^VJcl*QY zQe*T(a@W4NG94fkNc~%XiQjOc_FQ=bz?kKD{X@0rzhs5}Q|kI6ocLdoA5)sn#Wy^H zy)xAfelzUQ*}rG0+3tnb_c{gtKZ1muD;M?dXR`{1$0p}-uv0>}Lf%10XHHszN>-b} z%CUL?+o$1Y?eq$QX&06FYC%8>A$9Q1An_}N)HZjfRL2knY>lUQv>!@D4{qVje|`Y= z8lMyVE|S<`o8VF@PvPS&S``P`X$PaQIr37HNK&}t?dNasq3_BsShv^8rqq7ZwkY@@N+}qhi$d=RJ8qfTh zHMv5HG>U8!=4W+u{=JQ+M>eQiOCfb}_sl1;NP=3_o4k}_(RwGSff%0fSZ{^#oX2*y z3n`;P$!5JYuca6*0wj?w&b}6tZ$@Kh$v?kLw*W^o#IE=5r9ccnK$*A>K9i%%Mi zq|FVyz@{gZ9;*1N;HUlj1A+m;*rI8m$OO8;IxxV4$K`b-x*jKO zDa+6gAz-!(`{RcP#>UQJrDA<}SK*$pr$TqPMQjqvcG$%@9}Zx3YxBtmT#eo?R5baB zqwA{{3hr&6>*1?LyCH>+?b*qCX*)-_F7i*E>#bXKf|)xzh$C>pTVqB3%q&4!X$VZ9g0Dmf&o7KE9kL`hz8%r z{USN=F2KULV@})~M5OG4PquT~(}h0cjG6wK3ut)7s&O=&ZL26cYcLHIZGG});UaW1 zhkK?762(|9ZM1Sm9ob#mgJE&lmQFOYr3)4QM^CmkYqIXfhPIsDaeR)35o zGxibf(Z&ot(=pv$&sWO{%l=z&O6Dm*zSMZTPWFNGo6K&4{kvIMM#fo`@F7ezHoYFCgue)#5b_H{^fp ztQ`1#oHxT3_QN{pf$V5fDLw-M)lOpTDZ=l<8pMu+td{B&7Kfhy(!)>AJhjjD2=}lX znD=1{Q<(60FZKkko}-vvW?gOD44-}5<-*m}`G*ATxmZub)0^&3DrQslMWtrEK5d`9 z#dpcZ@d;NPusmhFLp1X@B%Po$?K%Hs-4TARQfA9iW&&cTm_GWvf)4gf-`tx{#cUe4kHF3Oe z5Yo}W!&XN(`Fp}qQ$NhMWV*Y$F2f9<$72RSad((Ol90?a$-Q#) zXhQt0R9uz3VC={5FOagi7F6k-@>7*8Bg%jB0iZ*-H&cvxF>HxgDshWXiK<&_Dd9N+ zuSP9~O&?OGSwus$`eGfnl_jUOe9Rb^ij;6CzPMNwY?kS(HyO&1CtP4ecaD`bLY3;32G6SzZuoEjOFMH%Y3B#;b58 z6tqY7!Vf~g+KAiJ%tF^pH}Up0+@9L2yZ!WeE*6B@NmZvoatYt-*Z6R5t8HPN9yr|) zuOuuiS9Ufsm4mdV_UH2CQP6C1IdXOz?7xU;v(ceX&>#KFgjw&6rwqpMkQJip)FPg6 z%JyxgIsbOx4VN+c3Agtf)rErfmSHBTQ8Qj6(0|k_+_UP;{u#-%TaK~p$O=Sle_Ohf zq>n&2T@8*eryZCX(*)KO^kS{h2Y&!wCkE{frb#)&&k|V(^#p7-C-P8^fNQ#P$>M(G z_AWdmH%$>KTAO5lyzhmUB{|~OrSJwVZKBtudols0qof z^#D$++e$*n%{Ks{4L)* z0B|uootmN?&oRAl0EO`E+1X+>YtJ*LtSWPICIBtPwUYIM$kYl}i!L)6V(4jgT~o|l zpMLrzA)4wL<$BI&+M9&*T-=)Ra2CrF>zj%7stX*WDPJq6Sxh(i%2rtm zCl-a@8dFYdSbmo&Dc`y7?${pYUTAtujry)yxj_v=G8=Y=gK5AHn%Y4U6`%-%^xP-TyhtC>by3q`}@@Kpr` z4c{u#Bfd;w%@ui?o7z4?yh53W!Dh2Rc7?sH;v@7Z$USVRbK@(c*ZVL63tPax zgKyed!dOv}EQA@qK!t(BU@*WSS}6o}B%J5G^h_SvZ}SvP^Sc@+?huAd?`%HUrk-|P z>!#MGK@d-l8tCjgE%g@^WgkR)wF5dZY)_t55XbEog(0xYMAk*Sz_$Aa(OCOJVDmi> zEp*1W-ANQQ{6Ksj?X_0+_pVc~@| zgFyCrt8Cd>S!9pKb<*s3;sUc02Ib_slK||;y-S}T)Ov}9FtC^?JR%(QYEF@w9v38m zJvwW@u{CU$`IzraVfyk6l22z9kC7Y>i~Jng2_jEAolaHFfA6VbroA}PCcVeJb<{o6 zd7gti@s?y;TrPX#nldIK9hNJi!hQBijX?KoXB_e3L&x!IbVG=(A%*W6QHeRaPdN9c zmC1SF!Cp3PEPXv1wA{V$OlD9pUv%YFxhM5I-K9jA#F0cggo}2ZaHpA!{=vrV{l!nN zxZC2`WCKw*EC-&lFsTf&GFQPh6r$SJtIL%W3W4rp$6=B^95gxI6o{qi`W4?o@yK4eyGH3K1io>G?EO+vpYOZhHXWsOmcQ6o`$AeW{jO z;Qtf=*wHCn4+BI%;5*IdVP_Ps;t_%uOyS0V^29gt00qsZ0P@+*k$lUpn4SWS$ruh{ z0OzfZNxTE>$~u2w6+><*Xw_K*Rx%c8n0e6S6 zRISxg;!bOX&0y`)?21B4#WUYbfFq%FGdirZsHg}4bbEQK!75glF++pgFQ|e5MA_T6 z;ps&@mhnR8&ko5(6TQ<=*HhjX%ErcRWMri8psA#kT35H<#fidi6cheYi-2=03-VSp zo$MLH<=l79D5E*=-yc{iL@+DFz65h{=mF2Vh*;ECYCB!0Dc#rAI-?!R-qy0SvR29` zJO>s&0H7nU8kbj=Vvt16a$bYu9=vjXKGvZ0w{GQ#ym5M2j|opgF_*;{-vyEd2zEU3 z|(x`j#n!NTW_pSOX^;3b)0p4c~n71>=m(gZiIxhxcwXLxU zIv--1A>|5Q+cuBpHkR|bQ*_InPSZqg^#Bc9eyeuFXXqO_#z zV*SLTf-K|XDi>$<_(%;e#EYRv!%!m>mNY^DuA4)vGkCluHneb_eGUn868GkI8Ay8+ zRHiSt+J+N@frQPYuGGNt!-2_gNeOxpVRElT*s81BeYeHVAFeNNj zgl`GptB-v(N>cvgM$k)Y7_asV6Z^De$R4JpGh)X;b~KH2HhQQ2Q_%7)-;XtlCwh+; z#*28cm)m+7WM6zYPs2u}i0*B;c0ft#d?hNj_;}eqv^LYnQN#eVqcb2#;__dVKW^0> zV{2rcO=g>%GDHbcGXi*S1VcGJX%~nkS(~>c>xboi_gzf&Sq(A z8|S2A5-?$$t=$bX#PWpjEQ}E`W7&Pb?3r3TtY=H`!OCvYM{d)5J?!e!5Yd<1lG}MI z0f%0eu&gCD&!zR|MID!lhtS#Bn|epM=FO#POMWJr=#PYC2HHiPA4x?c)S1@A#VCb~ z4y-r2eEEJlS}DJUH~!h>IVwQhSXFiL8t{>l@c+nzkXQkK|BE^NZ$*v&8*AX-d4YiZ zoYb5gD%Yv|pvaC)_kSy>5CzhyIke8TZ@S*fQgWFug z*RNMFaG7OeZc5pZzkhC00^l(lOHd zE2>wAl@)^_cnW?y(mAXhvc=={bY#H7@mkA85CS+%>M_0o&7GO!-UNZJmX^QWw_RP1 zo!U0K(kCd0pgdjcOv|%U3h2V>su=+cP2idWv5j8V$yF0M+x^UMoqoIxKAdvQSn1X( z0r1D|djHjg7i@GPaLkZcEZ+ucZq?a@>8#a6+2YxM-Ekos|MuE75)ythB>iA z-#n16Uj{gu1SLw((oAdDkIFo?5 zCva77sg+%I`5g>h+&FokzT~&D{C9QnXc5f`lk#XH^Y8ERy<^I_z#}`@+q169|NfW7 z4;jhj?(WU~*$cM=5J%InKt>aI=>Og!2><5^|6d&^@qc>q|CgTp3CI;I8Io=*53h$V z2q(m4Bv6u^>iltO?t0g+nD!()JpS9p`BNK|4fbB6bszu$%?Vda9&IgmSa^WkKg_e$ z@c7A6Yr0Z>^HL)z)qBJ%?x}kd6*-3NL#kxPVmO)UCr`oZ_H-AdJ&R-rnif`H?6rPW zvPFWt21qqTgv#1XJSB{ypmkLp!bgyOan6&iS2+}oTfR^K0?~a+eUd z^8mP3ywP4kV)o1pazHhDDR+!cdbaOMb;yOozfgMo@>YE0CV;@G`-wQR$MYYr6}OPe*sDe@VxnHx z7O$T3oQAINxwui*<9qfP8D36j5*!I2bW7*GtuQfWg}Mzk$RPJFisd}M$kJ_sp0qBD z;k{d}qTc08)qgzw0E`z2V&Ti8Vh_gf9>%vJlGZcDqtd69R5(Td2(D36IPjUKfh8Zu zmL?BjAs*&TX5Ks+TaB_WRvellRzwzhw(zJ%rM$3*G!mz#c#5lXi*z({6_a1IpUmsy z!bIh$XZaXVdLV#DqG;N^dw#Ao+CA^yWireT{_5Nk7qjDIj5M-F8Y| zb6enWWq-fq6!%PhIi)~)}@hz%ZdeH>r}UaI^IW?`9hEPM9KbVcrC?C@MWdzLX`AryHq z@`hR4*p&<`8t1`7w5V`;6p^8DM;E4&#^NkkGre<=&#AImwJhMReD}-zsWrtmBs&FV}9wvuqr<*ntjZarYYtOR+C2PK2TkncYSzO72H`c#pZM1 zU-=*bm1p}Xf~%n1eByzt)a4@G%fur&kXWP=$tlF-0KhD=P zYTt<^fLd4aVH@6Vzk1Ae_Tyh6b625A)~UYDj2}A&Gam-~7~0@yOve65)29`G-{N>( z0q^_VTm2Gg6*dC|R|*!;@hh*Q&b$Jhm-AWWVF=DcN}IjO5mm9{*|?`s^5x!%amFG` zMR&OJ)Qi|>Z%l|S4R_bBr`e8om6J{yLl0FXvp*y-m-cpMwEArCKO}l0IpFE$DNL0U zQz!FG+s)^@oAu%{DL+0{8kD}vJ?L$Jjf!EoUn1!OqF@=pJ7#W)34(KaWxQreuo6$E zSMi+dg@>KVr*bZGB^*Z|`h|CLy?gFqt%#pj#Ju)}s(5c9@#j6Scc9C4sMJizZcVo3 zb4tUM(oK;k&Eh>@*mTyDQ_WMxN;#jt)ejs~D1<{y7gwdS*h(wdtObzAt2$F%IS(O} zXR9{}9m|&&26)1a8(Lk>HRM^(pl`;BDq8|NqEQtkVXKbh!@?2+b&Sl;gL%Br!3H)g zm-`ERdXqmSQ{bI;_WT|(F|Hr^m$l0FxUPU=l*&uF6%=q)V{T6~z{M%V$;_a9i z&6vHmj(C^eGJ*;ym_q2`OG?9?&)^io-#dpXAKtMWTE_qm|RhrG+(sQ8#~AYXNQeKTFk zL5S1A43Fnk|4hQhUCSA1RPOD1K2~TX^S4=Hek(N7V;N(MyohXgr|dz1=D<>1HUk+p zQD{CC!aOW%<$>K0D3?V@83z|^oNj+JaSgNj6t=N?!aD*zG$^!p%((niTZE7VFD3w_w}Xmol_wGFFX3yvRPRwpzi%g`@qQuzDp zczYFhAfG0L>Aqk*G-#(Y!W_tTR=DgN^Jq^Uc=`}tPaONBqq26ssz1sVc779dSCRkx zEOT!UHb`45{fSv;_Y8BE&K^NAaf^99l#zTQb2X{3 zjrW9)FgW#o1s5Wi+;z9(N!_Zj!Yj?|)ORdcU2Jwm^mL2Bo}ucw_u_k+o~8uXo2nq` z^ENSk%T-Q?168O5_s6-f!$Qos9KLYx$34T33W;F@Q+9i2>`j@`~1Vn9LR!eO++SFXhnZAf@b${lYeOOJe7k73ssov5x zSgkOaDbb+HonR3`)urrv6Z7jtN4A!fXUS0ckrr%P4L0*7+wh;QO*=Mwuj1w#pzi(0 ztP(yl2gyO(ALdLaDOI+6YgTeRa|y3NV;a(6qR%hR?tX00}{~HIX-Be!ShUEZI6j|<^DwlEZnhCC=jc= zTj}Kaw9I{#hx!qXUT=<))HK!ozfSRpQ%#A)o$1&t@Vz5vF3G` z?tZ4Vl2+89cpzm;nB{~=-VUa#ihmch^{sA-i1^DH{fw=Z&%WFvi}3ktSNPWDjS2}b zbX=5k(DlmlO#>xj%T{1yZXOxx20D#X4-NgWY&y%4Ym=>tY#_3|%ae7zRjFGm1L5>a z+W)XSyv$Um?XfkvY>iu^FV+)Ux}Q_hX9V}y?5;kvEo3h+Xz)h5>bu#v;_;T&Xpp9m ze))dtp=6XLS<0e=Lmjb>E)yXK-B(H?Lml+o?gIyQbY5evN$#3g*0rhVQD9Z&alR`!(Xo-jcVeUxm|)4r z_{aU~(hH1A<26#9<*A+31{*Kwp40DrwN5=HGdOsiR|s3~KI>SVjA5AaPQ2!W$*5b7 z;;4mKV&ciF7_~-vN6GlpQt6m%*s5Ty$|Q9aE~jYEHCvf;Y~r?0R<;}4Mtn5$SR^J( zF&?&EbpO;sEa4qYV=ZqWM!DhOCjV_@{^B1hq}bKe9YYgI$w4;Vaf&xA0kpl zgYZ5aGq)U5-#~>jDn8o|vnyB{hh8eaGpOh$=}6S`ori`VcR44))LB7-?voD~tTg;t zh&9{kRTPYs-PX&*b%ZT9{v6fn$Hto$3KfK734LeY8t&620Uwc|C-}=jJbBcs@&5)OL9B4>LTK> z3)QhdCfOfmJ0NFl6SHsN8Wyb{<3>JFT=JLILS(*MBR9J9LjKQvxk877Q&l<65?zdR zuqG&kwzBgrlH=LWbP=O4yS7J~8O`IvJ5!N3>5tM4MBO(ao~x@_b!h zw3U6eYqB+QxG7@=-5vMZ?m6vI6FhHE999mxvT!{NIUk-A?HeX^BrdFc*(PT9&wP`* zeYO@YS>NsL!duNc^z?_g8hHP=j3gg_(P9_2yoAh`R>kcxhq2|g_~>umB)$^#HnU_* z$j+dr1S@yQ5_2TSkdgVrXA-aRMH+dTscWy^e8e1d$9;V5JR7I%ZJPc>Re877G|Sm$ zRX_o%y%Aq4YSakHlZEW39MTiZiVp|1fy&oWO*v1>o}KTp z?@PCD;A;Z>IEr4P|SM5ig>ACvz*muEUx5xR0RXuAzS7 zw))0E`7+k@j?1L?JLLz_9Q2I85~q6Xq^tUbY29{e5E)I4a6lSvky>hsOWR9&)zPpP zl9yY(NRI_=i^?CI4cA}$8Y6`v+99aJ-EE=*De$_!3O@ga* zqWduduUO%vbo1pJaqN10JajGHe04LlDN6#HEl@OWePG+r=7K54f~G&Dq^66yQm{|I zutrl>9G0c{d2uVpu~Bw&(wE@_H()ajCtJ=B2oC25-}ql<^>)66$!vafosaP7w_KG* z$SF@1Dnh@nr`Nr4JRj+WLLKJlYr4J#!rV0j&xL1I7acfS zNCQ~;Rvgd*Ljgv|IX8SRS#SaI^rcthB!{=gAc|~)b>mI3Y1&oOM;W~})>LD7J4x|n zS#!EknrZoDcFogge(~H}K*BGE=nIA=bGdi!VVX>Q^xcJ89Ve)hb-0U8c;lqb8WctN zyk_Px&Cb(0_xr4Cs=u3xeH?kkgg;l>=~JxzekIIx_6A>rlgmhPN9g^M6iAD=chd;y zZj|ew?HME{Okc?UkXYasRojJiGvEFJ<&u|tUPd*;-Z)Y51 z|_e^RPs_y1kQ`HV>6sdpIhaf6~x>zofV|c9GCa4IT2&wsIR@cp4>44(7B9 z=y0C(U|jz3Q>=aR4n~xiFfixMbTzGz$aXjlY}N%iby#(|$-#@2txUq5)`W$|*S7Gp z(thHbM+G zmvvnl7I0g|Pp0u>KM&)!vKIMfLM`Prt;nd|JgXWZ=O^F97}S?Ada68`1yImNyixqq znOf28bNA`zn@>OZE1*;D&OfM~M0(DLgRoo`Z=H=xJEwGuA4Xr@h_{?{PV1CLb5w3E z3^p?T>tctJ-tv}0q)bpc?TyXEs&#|WTyol?zWeG0OAq?{623}73py#rI?#JH-lDf| zKGbr!pKA#&#u(T#lTMN2cKfy|x4d-(JO7-f<|$VZYjAqF%eG>SdarhZgNG3css)Sl zsVt_`U$V;E_q0-caZiCd)dop|7l>B?^+u9G;TN{=9o?-8#&Rv8PF;@+8ZeDqecU@j z<(QqKjQAi+2cBRE*!cbD^(2Ay;+`^rZ!XgKeHt&EZ5rpYJTrORc&OO7YR$+1b<(aZnjVwG^5n{Lb*+$=Z+4w2h#Gf&yM2$Jyzo*aTOm z)vfjH>eCHs2G0-84Gb>v1*RBWEyQ*&Z#e;}{8Zg5;(_R>Ln-x9j*~vSq&=l1f_ieK zFVb|Uc*pm+$Wx)Jsy-vfykl1r2*J*?%bB3aG0eU%X;1R!KE!OjhDNg!DYD+JIh~n#_=fYZZMx3!;YLy^e*lfz*+M%GT5KmSO(+uh zSQiob*`Vt4ydBaxlYmFbhxXKvSNvvR*CN~9UhICzpjyGnk*V0_DW@6ILr!q?1W)Ij z-rW5Be{rQ+U(js>0`ozL=*QH5oB^8Bo~ zPSW(b>zmzhC!rdz!C+^9z~Q#qGqmOGJhpxdGGqS0e8zG0k3ux{_h3;lN7uTjzP0jyXQ}A2f#;N;l47D86X=ek_O-8gUS!-!?|k3!@W!Q z8%>Uc*+qspg@%nIR^$V%luzu4>GF>CprU8&S8hp#4c@68TC;YLA7|V>zhd5#EkPf1EBL?it~+g4pozAWvC9hNbNi)gFO}V=ObvTxwhJf zDIgc6zBt|zVGcuzr=lHrj=a{ppIR>^#E=;C^+A_rP0JMoaOb8+a1&FHTPa};cfOC% zB`0{SgkRsbL=~q{#_?^=(qt=);Omq;GIM1~5R_shZOM65+0yKElqcRgJJCJYI7Jfp zY`#gIvE+TfkMU`--qRrPlwXG^w}m3)RbBARS zdTou4gSi!n;z>A!%zPv)4u?>FTQG?+)+|;j>Mj zGV;uu43EAMzE7_A>*sHgDGx`wZbdLm4R0cwz=E~YLf02kXh?b=cFUl|+0i^w)9m$_oh8=b%MRzhjO&4tFSFR_6V!nA zPE>PZKfJXmy}x+eazj~sg9_eX?x!T+zQ84byktlEyQnqA7UM!@rce9B6^6EFb)cU2 zgq9&-f`8peVd(Had^JX4=3K5Bt=E_6f(#JUa=}z<*;GZOb@%G6*7wWn=$5@Nm8;hB zME1VsA``DZpUo$E>MG7oue=R+17oF`njWQG{M`ho0E?enkr9bbAHP)yR zEb{Xjh%s{Km|QtmaNSBR&!YBGb*I8lv=_v{{`lbTkyb(1L;51{s#cjsnnWR3e!(iq z+J1CYFYt-ZL-p3ctE?b_PY++t@&7I!HWsFt{UA;)3UVl13wvn5f)YnJQ-e5MR;b4h zO3b}?yJw?9onXbv4~54~ZEVIJOWUU`HmD1XEAYp!K^xM_JL_dwTnj>#>!S zQ;Uk)hlB%&WCEp@Gr3dn=55^zjTzvO;~;I~A&NsQ^qc0U%Uo(fCcn;9y1ag!|DkBJ zHcCr5sBl}7m68AX`asi(*1!AX+!pvf;#=uhIa+rFoh!%_+{ zd#kl-@6SIbNcoclMlr$4S>NrU<8!=T2tkaf?SBd=qWv~eo_E)D<=UfgqO~{D-aB^7 zLq?yby~@{oYVVRSC6ji^PX3V!Q2uP}Sx_G@m%=_hhMnE{)iBn2fVY-0KG+mU?&Ley z@W!xe`4q*sCsY^csjo6BpZpq%OH$uv^zQ#4p)lacnO#qCdwsrL%dRjLzgMK{l524K zZ0@hLTrV_1SroGN7gd$;g7ue1aQzuGR+Rlm^< zN7aQ|fQo#Y5g+ywvg=H)5g;Z>KPN5UV+wDFY96v{qEke-Hg2a%?j2aBjwILACjoep zi|c|^@)@1;5iyKfN#0s9PSFIE^Yq-^TI_tn2r-q5D1~!A@NuYLjhJWTnOlFQ<}!H% zv6$o*ZA>@&#)>zW@X@@3$hr`#_=<&DN?UOluN8MJ8{05I#4MMihzOm1FtXcP9MIUPU8?g(3y>%%M4o79#8 z^(_U0>(JUMde-Q)+IBoe-tcHoL`{F2-DtBH(rSF$)qMu~Q<(34l%V12R zt9E6M+gNIWioj3jm*!uO04U(!+JTsQIBL9pOb4N}vtjbluO(pnN>1x5jX!{MV}mi< z_)4r=fe0&^t$JeZ^sJk|sEYb(MS4y~iYHOoSNdU8;DTr$6PUr`j@olg=)m0cmW?E5 z3+g<9J1x4^%%MYs;^mPeF)95+^KSia%tDa6P*2C_vDF&dBZmy>8^!6~;7G2`yQ&{b zl;a*89zHwj{p#4aWfFV#(ZRK_?s4_F=3`l1MiKJ>O}JW;O?v zjgz*vzPZN`a~;Q=yaIQny`@m|ZQA_S?u+&Qzp$?L38hA0QI0ax5RUIU6cr#Oydhi8 z*2lc6cVwvLNu+wawPW~AGBR10qK)X7IONOSSu#`g77o<%P^mbNm>z}NfRy?&f>#wT zV4@9Gi@yBI{;bdu%I1}?JNQO;3sEv{7NJ$BVLoF~nMACc;_}|B@Z2i6dt-Eb)Vz#9I4Bt+Co2-6v(<`)n6x^wsKk{SE867iOU1S|JvoiY9yEy|V zOiM*F%yp8;H5v^unKZhdQDHIJy3zOU;MHOZ4@PjPbci8=KhH(_IC=KL$_I4nhpL$ z53lU0%XC1M9ukk-T$<7)$@!~kIrY6qHW|^Dwh)Q24=)2>6k6(~EEMRDtz!e%aq+xb zMG}%20|A}5u7p5i&K@g3Y_URMb#yh-uEDD_cBrq%%#2^t4Lpe8B{~e~BPZEE=iF%w zShUmWP&27p8>ic<(DZllk=F3t=o7&>%fvx!bt3oWrr#oiFhAa4|AGo|c8N_!nFeNg ztNC_3V}BU~D(0jz$=|h!IT+3GwOq|diOj>TyjQxmv3wIRnvGma(LYa3f0*ot;=$PZ zV?AZRZE)GFSNSdx$xshEZpOy;fIKn^mYS;4KgD%?a*Rv{wcr;KZ(!yitL%Fq;RtIV z^t!yv@eY}L%~Xs>^g6g_o~^FELHPItcR0iv9?3dO&&sYth8G@+6G zU?aRCt8Z3y5=*zmmyUd64hZ|tJ-`Bvtqn5X>FZz1;9&oR&viI8zK0h`O z78mLw<5V${C4Po`z;k(OA+<%K+a?qmz9S6L989v4y*>G7A#XC!l-aM?*`XyqO|tMZ znf%eN1Bue?e0d6k_o(KUJl<*sp;V!G3rlV-IvO)Qm=12IyyBgG=}WCm_L%tY!TO4G zr?8~j&5z0{(c;_OiyS1VM+$_WoNN?^bk@7$T%qPLhez0uRCUp}2 zE9WqrXZ2W`>GZY*wa2H= z*pZ1N0m8CsGQq_i(t)VhEOU8$LLGv&7}CFhk-~nQuedyNHteiG%abzk%|s+avpB~1 zY$JBS7@Qe+BK%p+Yl}YhN5k)hMvf+;_4gA#l#^(etGxgT-n9nBQ0iDu>^VbG$D8<_ z<-{I)**?`oj#HSxMrL1U*9tnc4=ng} zy7$WWNa3LASqYHq+ zYqJkbf_l_mz^>@1#Or(v4|dHUhq&L4^m&9{p-#lb(@?vr&a|2fYWX zQ$*3U%@a4rpw?t|wqu%?4_le=iGW|{D^${sxlsML5dXhxE=mVbH}8R)qs%K4wzVTh z7BM%lS5@J1aTKpoou02c{8PYGRsFi%&Cpleg$=6Wn7EeFh?tFd z=&7VdhDY0^NuSYbtq6aObo3?-@D%RC!-~wj7j@tU&A6GEp@?o>eZZaSDygW8zWBUu z(V{uwV_?Mw$WjajDk@;1Z3dS{q6-Sj_M`JUbv0>#1WYJrctq}I8S7TXY^RI3G|l@P zmL0<`6HzX}0#mQ@Ut(c0U|yJV4Xn130i1Q&^!pc% z!5=UWhxRWXGXw>1ZC*wfBlG}d2?A$u3wV$RY z5Bc+lQ{Nv{5)9bkBktN4#;0JkTD14)CLuT0w85i?P9D1v9yJWwB%-;Wo;azCX!7WVHSDPifpl!AA z)2?w?#-oUH3PWPQ0z@5APGW|dak1s>O6s}APgw3fPeY=sx;g{9fb%OPBu-%na-bvs zB-~wDHoj$l9vph0I$_KKyxwheg5P_GgDHporS!vbJIwuspcV7%By4Bp?!22%Ya(mvaM1!h&826i_R9CB2Ivt200mzh?t*Bf1vck|#0WzwndvAJr3` zFW3Qi?Pp6zr$*4}gK%c7KFjI~XY!x|zR(I5dOt-0=4xYovRcu+x07^mcouGmHqS;r zxG*91A*g}WG#nL$dvjU?u^mL+06J*T#r~p0wf_3+TMqy5`pXbz=}XlTnX^s9!)}+= zAg|A3@Io}i@qC#+l^d5DIaE0Noos`lgu7YHI-t+-9sgjKxby<%xRmbrBNmusL%~+3 z=_3sCbW{?)8#=t8Tl+k<>@WBeDwh;4W|*mMj(+;()s7dnCGxOo9GR+h;V zM1VPITnwYS@g?fSd^XwHr`&Kk%bykcsg*@xBV&^q?UU(h!&qd~g`o?4wBVg^I9RUr z)C%ogwu-rp|7IQ%A2TnbZVZT)QnL!qm=O8HJB+${3<#@3ydYB^`jI==@PL7{g8`FI zc3-h{{n6tt8x(rOz}B2gp*RZ{eJa!ZHDaqeBD*{(yMkf-G9P@)cgcF1lnF^bX}Clms`@z^Mol zt(!#-x_SCMtz%8eUIH@~aq1bD%?@!pp`ctgm;osKjaf1cZ>^|9eCJ-#N?o)bX!aCf zVn9P|iP&2o0gyMfF7IzdwjI81u;jv_y|Pbiofpaa-Bx7P#YDS!t8(Po#mtz~RoB8X z2+m6Ry065UCZD2T{8W0Z>BV`rm-t zULY3}bJf^vZEdquSYcgyddnctBXt1I%NN%AsWR#%ZOG~AsRvU3Z*qi8;Lr2(^M(dd z=E%~Lex>*C*G|SHfEEnP?LWBX+uT>Ip!7qClT%Dsc+#TsmhNpJRk3+?wmw>@BPBHB zu_6}_+*{4@Diog}$1Ej1F{v|>DIE)(K|#2oOQ}rrm-Xtx6U*_EFZasIO?iN$qAu>1 zmsbDs^=tFzOWul#eH9hF`O&EVtF^BRh${TsL=lh>6bS(l1nCq6q*0`X9zeQFI){c) z5d#n;2BdSSA*8znq+6srhVB?@U;g{;#qPHkd$Dsv%*>fH=e+N)pXc!_{Q7VgYs8iy zh=G$czv^FNT%61eYN}EkHJUeQ0ntFK(hCU*ec%AR=Q;HT1_qfvCGK7VLfSVdB-`(a zi3asXv%gHGKl9X+9uvNwP{gb@oAB~dKfB>J&9wc{X+eZR`AeedFebv_LZW4mYSOsnH+|DDw(squ6eaTinybi4JF|F*Oboznv-wMPU;X5Kwi1 zf#?y}wqVRp`)XtQS?5z&Qb*|m+H?hZQhukk!})Wm4{_#%elA| zyAy#sgEitaL?<(pB0EGUf1C0t_%<+2cCA;hK7gmBzO}TxMw2}Ia3jAkA_74US@7Y5 z|KHrQ|GeCV980acs-`BcmjcXpzbF0Q4r5@r3<$8n%TqrcW=9<2MK;NR+}@TJ*9)9d z)g3s!;l~>-#{Xk&sc|0w_D1{hv3|+xBE^YWU#Gkg3G;ST`see;Yu|bJ_4#RJ`}uaQ zwht^Kg6rnXIe@|Z_xpU0LLDY6Tw(RRUDERMfxmvK<=$Ws<^*q^buAvZhhNhcX|juW z*!wo@&G?F1TH5gQy%?&$8FH^A1So*_`;mDa=O@?GE}s#lZ45(FI(kY2vH z%?mRKazD=cNl2*u{MJ?y0#R?)7SE+$A-WA_)o&>Jh-oKq@lfS@TYHP&0JH`R(F*_z~dQD&;Hu5PxF3&fJPrmE#^W0Sd=la7l^|5q(wrEqtb8Mc8*7DtUY_>Tc$ zl?E@AY}jLVuEmuVkKMWXwvgEVWbuR56!`gGhcWF*h20ot{tF&N)tZl-<=F+lb)S&8 z_t}DoflW|y@{`$s^Kl^hA(SfaKU;2h?K#U;u2-Nv3j^0n zD-0L~a(bqJlty0dllq91qQ-;17_em%geEig&u}u|ob-tn;oLbbFm4nU7A}WvtgR;d zc9|8w96I{?K-%YIyTW!9v$Qk}9f>YUhae*-kh~WQA?EOF|L%!$8bX3#KmU59fau$Q zzfApYIuRUWkl~!173t4J&MpyL##af8GxM!nZ zkY5=O8O{dO{_gJ9AjlcczMcgD#QD1^2fvG{O&r+3CKB9l92^RV&iFKh0azu zRF2Hl`%JJGCd+vbkTO)?Gr+~>v=n3$N`C1A&FHN0`fzpW3uNTH4tjN=$)7h#da+)y& z)!<46qX;QDBOJH?6^ruo+a0bw2nzyAP;|cb{~{PWkl$U(HpkuOGQzFo6Z{*x{PF4N zb}YLaD74j*$yZiZ{P)`YY*zfzbh>InC@wd1egM@O=c@}IEUeYb%1U-wviQZKD!gQ`iZAf=ZWGa2Rrsw71uqP!~Jjb#QP|V3)`j02o=YV zF8rdHO=0V&_EV=FXEBHF%8)K}P7VjLHP`5eS?|@w5cu1otNPa*bz;pBav1vbqj|%x zU#yaibN`C($flRH1yDIFUG*K&XMh}Q6vl-`;xt^B}AzGRq!n3 z$%$Y>$UWRv8KK^xk?HB=i_6Q)%+@=`{xCES3ShpFXoN=+*sN8zfYnud4po04E-oEh zett|F*_9bP#nC35pnS308XjB5!i0oqu)VlC9A-y%bad2$?FtC{-xLs^?sq#OYctKt z4>Q!NWMrnF`<(_tzrij}*`U)pc~y|nX)qYYkiK^YTUq)S=+dd%YyFrjAOO}k%VB9_ z0|?k$J2X-N2)NTrcbTK^jg?hJ^r&?&rpLBiShA>o-w$Dk2S5$WH|J-%@wd%meI#J9 zU6QA9W3IWCQI-f1jLKFqba1xHmEhFM2B*b|Nab-9iVHs3xfW$e@02DHpM$>s*Ihx` z^=oUgQdsi3U$PS_QwiG;U0etg(VHl@^S_$W$cAQ4aR+SyLA9@WYT!IR9k$SUTR5AT zG+~a4wRJZkwLrimmEcByrsZ$`IP0YWnww1q%!AAV`%Whsqhny;x0=L-Tobh!(jThl zx2lUz^ur9Ky^QMQWU2?^lW+5NI3ThC$NT$JrK?f_0Us(WwNJJU!yXHBkE%ySLS5Zp zU=^Lu1@>=@?D-!KJ_XAs1-9t7hfTm#Oxg>Ew9U+q+Y9!mG`?&3 zWQ}CG+$gHIu|eCyQlrZ}cV^&wXHCo6H&@fub=|4a;gL9I@Xw!>FT`y?A@YUY-!h;S zC2{T7;64WKzD3h}iEv2?Ah~1(w!2z%^mrp?Jp(Mi-nfJB=C{zr&CToZ%MB)A#ndEj zteDwwb|avxX?_0O^LQOrG-?aQ+@Mff9i6Xa*J5H*swom6Q&b!)EdQdEE8*8K zP74I9Qd3e=WTUDbCJR&G72z%pFXAOIYu$2m{%Z+N5>efTnKc{fGLqtFOBt&vcAb&N zORi^uB*zB_s00KO=!IB<=DB{n%M^#@4$yXoFa1d)k@z<|sn67g2HN5h?rXnt^4X2& znF3Dd<-Rkcz>X`>lVL+ZY$}1t8+d*QzUzOC68-;`Ma$9Cb83)*jZJqdOvKai8u%F& zl|*)O6999RstyVg5b-(und5(PLH(}Wn%gNmj|fXZ$HF3Hceg#v#2`DYe|Mhb3P`xR zg8oDk42-Ku-FvI4>Aq8+L@k)_RIF1{QU;=idguB7(DRPnaIXvele~VW`g6AiY(FW4 z>jUruL?R5}3g0~b8?yYr0r+mf0^srA(Q^OKN2nsWIe?TvmNURI@Z#ac*H1YR1SzAf zqNu;O@kJ@THTjX$>y8Kj9gz=tH_gkrzreM!aWAZ_utyC}q6q%k|6MREML*6Mv?v|F z1A^~cu-;x8a@1vS?Cf${nKx@tQDqL@yGHE{n0WG13_|)hih5HHz(EB`NIce zTnzssA`q1fg-VgTJofu>wSz{3G=P&r5lEL#^aGxhuo{V&9A|SWLq*|O?ejQfO8(=s z`8Sp-$p&+nn`=;&3yfOkZCAYsUDPPMv-!)gS9jIts@P}|YAEcG5b@Gdpz30KJ6CN= zVuC(Ot4br3tYF7RzwG4KIn_Pgotl9`Lcjs`CRY=vp+z$o_|$w(^y63X6%`k6wO}U( z@i%!K4p7=srj8ex($)NyxH-pAS{}}AOa0m!xzQ2XFkOx)bw4mh?K5kC7{ zqQf~Kg0H>J`>FjRh+^ zy~FNL{h&sNW`W)2#_VnB9JO(m{(y148SDM{Pg*C7z(K4#eObBjy< zI2g_T#J<1pm2Z=j&mQv*DRAdz3_%JFWUOUX1O@i?NGU0;aj{GwAMLF1ab%OHR9H1f zg^c2Apv^bPQCSl^yWwor$~>*!7BF#Wh=hKDRj@QeDl2 zQGvPUCI7hJo;vbUMC2JucIs?-t~xv75DqCKZvTyo^>E%K!@Xn}X2e=w^^$!vAHjzH zDFKlLX)IQBbV$f>l?!8H;$wjH-I+5H3b^<)BzmvJX83b+^AV5+f@2QbD7dKc@W!l7 zS~xj>Geq!;8+J7v0=<}!Hw?u(J&>NEq4a=Dktsf|0WDlvt!x#kFT@UsNwnypV)My~ z@=GeIAdT)yGQ51^oX>;5j&A7Vq`rX!CzM*?B^#UN$u>5h?%(lJI8<|crhd4=|BDWr zvzyzuuU`r9z5k5JExmg3#IeU>*DLQV6@#bpHVu~Vnvrhl?w-%B@3A$J z=CX);`$G+Wg3&^O{s}LuKk2vMy}exQ?C}VxqjiY_eIdK)nllnf`%F|6v%epDXjCz_ zFes?rLd{I^; zbXnaB&DH69NGp_$mz}M~%5i>DVsx{yh*r0^Wrc+$BurQPE|ZhD-JiuKCHY@s3P8eA zI`ot*c#W;f60*W9z&#k9#%7MmE}XTK>oyLETr)vUc{PP;nfXbC_fxJ79f{DVT3ug> z|1Fwji0wwN|NchT=trf{%S{A{gT`@?5wM0*B~}3kxwNQ((7#$ojZeMqPc~fJ-(N=Q zmQwJsQej>?jF+JEv}k}3ST=`n9)SAb3Fdg6j81f7s1OO&j}=mmK6?zK3gNZmS=D{o2(l zzc4dj)LG{L<%WqjJk}?k9O5h2C)tV1a?&i^iuHHw=IAFLB@Y%7@;!OSXeh|l+$@V8 z?F>iTTkMQHzZ{wfJ5FC#kd7SNDYdq20SP#ZTsE>H+m1I3#SBN z)SDexS=97Qmb*qry|*To&D)hw@`hb#fpq5Vd`{{1x-=gkA3D4?r~#xML#8y5!K0t= zal8vOv+E8EBc_9kMOTznRD^x|=D)|Va5CFJ#DYIPg3_kM{FoQiU`G@g$)t#SqJMuI z9;qnt+G{j|=fE}ujqAL0-C%u*x!25>_i+L1NFVMcD5njy@*g zV42+I;pqp;yRvc}P?bV`pBotrRNQfAlr_`_cUfeDUQ7(C*nb-j@0^^YAzj<=Xg$TKA=KT| zb7LfTE0XCty@jnjnfIvft&4$GX?eLL*l-|T`I(pqc@^RNMMqE1ezL-GrVg2w=JY5r zd;#;fz&GH0t7kHKx~pq{eKg^4q({^L)D(^x&VkJxC4|vQE-x;MTgW%=G+xJ{ZT6Rh ziJE@v=%bI3YT^dgEu|t0vd)E!3(O-ic8zEqA)l7!UIsd{?Y$c3rGkL zr$m^oNqGQc1Kaq!J&NMc61zHGw2$T95wabbYrGb3rd_0dKzmna+c&qI=U|ZXN;&U2?#qWGegkg1a{=ZZ zDyoW#*<}@u)BA%N*}-pKvs>2I*5-i*n##1{N9sUkWz0)aeIwLcSndnA#de4IFSdX4 z2mci_Qt(`Hb193M{g&$b1k&E8Pf1R8BuOb*(mt+(xHng(v%NhYx>n)fTg^FE?RH+_ zpg-ipZjvnKebo}w_zqbPBlj_~b%j76)qZEV;H>%B{7g%~ z_L$OkBsJk(;GaL*dI8?-)EZRYZNac9EezdknavpRDGf$!%F4>w&j0GX7iGV%t7}?` zr1sx~Z0ZT7a$fp~8-zq|TDJ};N^cQ6T{veT%4%&#a^7wR-oYE&ny#g(@6Ay#YyHfH zMnjdg;%2tMXCo`QFHxYZA^EcEYN}fCXN_OMW0Au^k1ah7vb1o|t%4NGM*Y;+qzULB z=0Q)qn|0dxRQS6+)&;0o;#=N0SLahT3pgX1D;NPag5`dJmYKADs(hdDo&yNKhv z`gjypVs8|#pjEzPLCW|*ww(Z;m>~IZe}ZSBCF2cd#UjR7D~4YKT3-_$7x$H7tw0e! z6G-2dDGi3il$MqP&F|=ij-EI|tNyEChV@VQ8M;PpL=M1?HMfOmzkAX#+t~i|d27R! zkCugn`_7Ev8c!16vhiXET-G#0`ir3VN!QWgp-$O59C1B+`-{`P44s)rUaen9UV81W zWvBFI{sKbLcMGSjC(8Et;_TZ)&o;)Kwug}7$mVzf6v#dCgJjtYuP_^fY}gx{91s2b<<{1rj}MW?nr%&fMYJ>u2`|0CM#5#H7Y;fz4O|(FugIB8z29hfp?r^ z`n|F*ezx>4;aAWIgsCad?Axz@Hxg~Z+WQB}h)y~C7iX(c28Kz-vrYZ|CzDQ;n^R}Q zkxXvr*uks!Oym8ysTFCqqkaT^_1c;0Y)nju0C--d9sDst)2x4G4E5)!DTDo?9mzF^ z#Jwc&?2N?4MfJ>8GZXehZ#_y_O&LyBZ1; z>$|Ka52dI=xkoiAoMV6OeSkO$1mV{E0L;;b!k1T?5qAj))`qk7jl|CkCMyc`%58n- zny%HCQlXE6?ko}uGDbWbdit1LYI`cJMowI$&fJ?;&S{z;4FN&&Nf@AS|8U@Ezl zRJRhW97W!BCneS$>RM zXx9DdR}4T?@KbaR=@XaMmF1@!@62dO=Y?rzj#guPP<;yyF3@1v-JZsK@}$uBByYA= zbF9En^!;BoiURE-LC-w)<+9lT(aYsn{wiPf*884M1Sp@e$_$7)kLKOe95(m<@XH4_ zE9jtSRPB1X(8dwJTI0s@Nk5eu{ShZc!zUA-7{SQm!jbDE=DK8JZJpiI)8ljWF-tWi z_Q#JmvCqx31`DFo(FH2k%4L2aZp+De0(8ZZxNKbTiG$VovRiHB5RJx5580E!Y!H5E z2P5#Hki-b_F4U7~y$I)6P0 zMb#vc*=o1i_wV(l;(DB<3-}`<)H!!7>@kW08(W+9tl03Aq?$}RYU<@>*Czm!J`6(IV^{yJV?1 zln+?qYQkgF)0SHk#$w{r=SLeZ2P<2%aLMx--`>eGn+Etb9BpFv=f_o9a}1a7+FCFb zNzi=bRgG+rT^^9xJRtNei~afYjf^5>1%3&u_p??iE`J+#PA~A1ck=axDw|SFTjSB6 zi`c-5T=Z?Olk(EHS(&SzE|JexozUw!&Sl--Yj+Jw$CEl_TG!_aZ5Ht|G3P7JTzh`z z{qR>d-ovl*%!+GOi4r}vxwY5aYFu@zfYOWFk49*mB09EY?ftF#xSEzt_}aj8JUm$I zrxpK%m>Ajln36kOipaC^Zz#0-0%=Ga8{1jAL>{KSg9WNFn4=!Z=1M2wml(nnZ$=+< zuZEFHyvs!TOTa+B?yry#{u4D2mHW;x?1f$pf~qO_K&#&Pj&SLa^TiRDASi)2pAd6Q z*xJofPe}KX*)^|e8DPr2N9BX_u0DU^<%Lr9xk;Ax9uq=18tA}L$sUiw0^~= zB0s-+b22fo0&QHs+Z5I`HtJ9G?%@8d3#k8jFn@0n*q2LL2ayqx-3skS4+pqy6+Q`% z)#>cg(uJo$z0#DQ{bPOoBdUAxm7dKayagj<#|PU?CT(n`H>=|y6YzOElb%1r)<55)k?L@8=hUY* z+{t+%hwr^U;-YDhv1lTZva@AaX)`?c=g+&|JxA~HMn2h?wn_Itf^0`A*bqGZ<$qVX zAf@xTEX#{IhjL9+K(3zVmih;Tcp9VwMzeojfAmGg1#=noUpz1F*X(DRUoR|;^<1Xo z;2={PmL9J7y%;;?YilCEvUIdb9;d09#lFz=p+47edAyW2xMZXSTIooSBSTPWKw=Fd zBJT2`+c?6?Pq^PLwr};u3&ab%wMVIFCk|O1 z{<_4#vPF&)g+uuHEvE*4a~2)gHm@RY!`{B7xOCK9$Pi@9V%b7A3h`A52NEP}M$z%6 zl5ow|o;aWF3&bZ>r85LUC!`n@2KMPm=p?rO6+1NB`aJ-IPwuaZZZA8;#G<%3IWI2l zrfN^#hxi@pHO}NF82S642^+emcJbQyOeAUO1qH8SjXnAjg>9y)&{OdY4j;iu&eVC6 zEc;pA-{!Kmw3Kmz>HVtYK`(h&mI9Xmm9tcQn+MW{pc^i!LwbajnoH<9uDi1=;yD2> zsOrv?Z(zknO-~zEI?V#x_ZxDHmhoy;QjXiOM%FZtV8S2co`ECMlGUPq787lEwlZ?k z|KuF8QB0`CJzG3ru(n<$Q+V%o$z@&H^8Gw9_yC(Bt0w-PJX7&~l5thTVzO_Vt-dS9 zmsT~I{==`c8O93Yq^T0RJ1<4Ed|z@@4ML3Ge6u}Y&cVa6%r`$s$ELQl+RM%Sy&5~X z&3F3j-;lJHrH~LMf&3JHS@;uiWDDO|b-WpN!RB}=e>cr!HOPD7J5j-3gM-sf#JV{G zhWgnw+6QYRC`w97*gn|Fn%K_NJx2=Ytqr6pzkBy+`GwO?9$8P-JVH~osj zrM@R&?xSsOHZyho7Z-lHM=UR^o**1-n8g3Arl_t2_amF=aDu{Ylz9hnc6ft+^Dg;64hP7{3`wY`-z84jp+?Z>VkT5wkYlwcMzugFUS5!Vt8=B&G?cJyS+<)x*?B_#%xjt?t)k2We-`jTXo6+zhv zWT5YQfo@zbQI$JdtmZt99}W#j7Tk(rQhW<^qxYgzWx=L3;-p9sKWCv;8EBWhEJFlP z6;8>Wedmyf#dUMzub2J6{WY({#RVTnG??;m-_oLZHGfEv7k(v#jeDq9V!M;rT#BaT#qI%!IyDaPw#03j#!FZ4dp<088F)C@^_|AE=jZeJFLW``5%~Vn zcrdwLw?F+Q!_d$WCAWcu+3!?9+?Pfxv&DQkxVpJ{I&Pf;E$waznvHP|-sw&7yhkgN zYT3BXjY9bGkhAMs_*A~=MAN_5Bm=O46! z_VhA@1lXU+KN9^I`vS;xisW>^2@7kf%HK6-l9E}B%ZOwN*uu2y!{g~H%~1aTIEL8^ zW9~f(mxF0KZlcU!|FdR?qngPnpW6e<7kxX8DW*Gjdo9Fzmd;MS)HP%jYOF?b)W63I zPgFRZ9rRDGu`~JQ1g)<{Sws3bixees&XJ1RG`utw6eAz!wzo^{ z$4Q7%#X!|?W{dwcXK)Y`CFZnD7GmAj!6Ik_Z3He|LPBe2 zsyZcMwIzrniUqZ5LiX)VTAHabTpZ+8XT`Ib6?xv4Z$xCF0@)soTaTSs zpDK$9npI!z&YOc~o_@9K1C2&!5|zZ4y;xnU@;SPAa?-dk(LTn;|#FOo5T~@M-y^f$mcXTj0A*;;JjKBN|o*bV2 z`~4s=z$Ux8w)P{6QB_sd+QiJ>K0gQ$2PEO#!%8h;hFNGCeou*EG<$RHt8g*RQO3Hk!F+h{VJakFA)GLh7bxemHT~!?rlN=szpHU`3H}(^n;&0rEM**q3N=-I23{Saf%TdB;ha z)8A6-j%?Ldqq+ebPC(OEq8T}ecZ=vgm^D~f=xK_ssu7_P19Z?*Y@L1chP5n$3uHeI z)wH*R-Ihd>kfGR_42LLCxVr!=YUDnOD!&D|wST{^U>kX=iG=vxb-pK09kFz5C5qHr zg;;a`X2|vb8ot$($w~&nJeK}O(xn7$i>&Nt6w1!vv5KA`zN2Fy)aJA4FdOI&@yJ1=+PfSAH>kHKuU&lmxLVO=eR zPo-u)sCStPO&SkYP z5Vlbr>{?tpMTgd`d0M4E~~?tgI#AuWo2m<4$2WFD?7V~lq|2rsj!r$LRcd-+wF{a z6j^yQVFGe}wG<30@_!jOmT9S}+zR&zq{7`0)d3?oz8VK!>z|3M4f+h1DRSy7=IV2{ z5+{kUn%>AGp@f8lxN0joADH?0AkRpvtE>0Vd`Kv7<7U(=pBu1}4PD8p;J)|#_)NiT zzXY*uY5F~OFkM4C|FEm`_s|e&lmJ;;$CEm*y@}27hn_n|*GruTNJV&0S65_b$-8Rp zqCQdu(v78c%g12who zn1ZyFvZ;c}b5OZ7-Ye z`jF)9;NY-kZEw#+>pS%FfL&wl9=k=tx7i#JxnN-5XLm`MocPa zY0a5cSeP8AZwyU~07DMh>n^UY!Etdp$_XpeHT66ct10^|r1)Qe?API;A-S-}|H^End3eI<;8T%N86EUYKeee+{j?&z5yI>UA69#7 z>mxP7M-OgDY}sk-HrQigVjet*KwS8}VC+HlC@3izRXJORKcNk$lXTns2XsvH6k~co z`mL+0dyo2#!&KGAM7jQ}SLJ$T?=E_U?2to5pc|S;Mj-R%O>|LFr5dY}imWIYLBP_a zI6n4x`}XbpJkQ_}#^ErmYiV!M+I>DoTDmnSRLt)0r_fL(4vuahhcMKIN0K}g1Z+cH zV&dj%f2)|dcy3){bacKZ`wjY5s*UOX-N&@Fu5MbObmzR35d>U{F(oyorL*$`#qp-_ z#kv*|$1O0;%xa9t!>;%YK|&N1=J!VU<>TVMExF>vgSly})P?8#{H2wZ<&~AHN=m^Y zA+2Kck27FR0fx;C{8&x3Upp3&Sy@OVQdC%2-6ZQ~&NVJ6i4pYjSQ_NPS#Z3HI%7r3>%gf7=NCbV#OcV}yCsuSV zs1F9cRwyYgjfyk_qrccmV7wHIjH$Qv=IPXu*STPP^FP1d|F6LYtoN_~YxV&Pi{Pd+ z@}CFmo&Ug*!SAX6|6lmy8q6SFUsumvgT;u2dlPkGV=djs$*bZ@ZMpe)1sRn$g|AIM F{tqVAp`!o* literal 0 HcmV?d00001 diff --git a/docs/pr-media/1640/tps-toggle-on-hot-apply.png b/docs/pr-media/1640/tps-toggle-on-hot-apply.png new file mode 100644 index 0000000000000000000000000000000000000000..eb54b50a05d0ef8f9fe4f12c2d70366d2f65f3e4 GIT binary patch literal 51370 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
Displays input/output token count below each assistant reply. Also toggled with /usage.
+
+ +
Displays tokens per second in assistant message headers while streaming and after a response completes. Off by default.
+
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

7=$8VTaQS~qcV!vpzcSMKt1_QFTs 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 MBoxKV#EicD4{0>hWdHyG literal 0 HcmV?d00001 From db54dc594ee675e723f6cae8a8c32d89e0d9253b Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 4 May 2026 21:38:26 +0000 Subject: [PATCH 6/6] =?UTF-8?q?chore(release):=20stamp=20v0.50.296=20?= =?UTF-8?q?=E2=80=94=203-PR=20batch=20+=20Opus=20pass=20+=202=20follow-ups?= =?UTF-8?q?=20absorbed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Constituent PRs (all by @Michaelyklam): #1640 — show TPS in assistant message headers (closes #1617) — Aaron UX APPROVED #1648 — session save mode config (closes #1406) #1650 — Codex OAuth onboarding flow (refs #1362) Opus advisor SHIP verdict on stage-296. 14-question audit passed including focused OAuth security review on #1650. Two minor follow-ups absorbed: - _get_active_hermes_home() exception fallback now logs warning - Codex credential pool find-loop accepts both legacy and current source values #1640 has @aronprins UX gate APPROVED (default-off TPS toggle in Preferences). #1650 ships first in-app OAuth flow — server-owned device-code lifecycle, profile-scoped credential storage, atomic chmod-before-rename writes. 4255 → 4284 tests passing (+29). --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++++ ROADMAP.md | 2 +- TESTING.md | 4 ++-- api/oauth.py | 18 ++++++++++++++++-- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73a7373a..e46b02c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Hermes Web UI -- Changelog +## [v0.50.296] — 2026-05-04 + +### Fixed (3 PRs — closes #1406, #1617; refs #1362) + +- **Per-turn TPS now visible in assistant message headers (default-off, opt-in via Preferences)** (#1640 by @Michaelyklam, closes #1617) — UX gate **APPROVED by @aronprins** with default-off + opt-in setting addition. Previously `_turnTps` calculation existed in `api/streaming.py` but was rendered into a global titlebar `tpsStat` element that's been hidden by default since v0.50.x. New `show_tps` boolean setting in Preferences (default `false`) renders an inline `.msg-tps-inline` chip in each assistant message header when enabled. Useful for power users tuning local-model setups (LM Studio, Ollama, llama.cpp, vLLM) where TPS varies turn-to-turn based on context length, parallel slots, and prompt complexity. **Backend changes:** `api/metering.py` adds explicit `tps_available` field (boolean — strict, requires both real exact token count AND backend-measured turn duration), drops placeholder `0.0` TPS when no real reading exists, switches live counting from character-count-derived text length to streaming-callback deltas. Final `_turnTps` computed from exact final output token usage divided by backend-measured turn duration when both available, persisted on assistant message and sent in `done` payload only when both signals available. **Hot-apply:** Preferences autosave updates `window._showTps` global, clears the message render cache, and re-renders messages — toggling the setting reflects in open tabs without refresh. UI evidence under `docs/pr-media/1640/` showing default-off transcript, hot-apply with TPS visible, and the Settings → Preferences toggle. + +- **Operator-level config knob for first-turn session save timing** (#1648 by @Michaelyklam, closes #1406) — operators wanting crash-resilience for the user's first prompt (vs accepting the first prompt being in-memory-only until streaming begins) now have a `webui.session_save_mode` config.yaml knob with values `deferred` (default — preserves the v0.50.230 fix for #1171 orphan-Untitled files) and `eager`. **Eager mode** materializes the user message into `s.messages` before launching the agent thread, plus updates `_apply_core_sync_or_error_marker` (WAL/repair path) and the streaming-thread context-build path (`_drop_checkpointed_current_user_from_context`) to avoid double-counting the user turn. Implementation matches @nesquena-hermes's prescribed shape from #1406's maintainer comment 1:1 — no Settings UI toggle (operator-level only), default stays deferred (orphan-Untitled hygiene preserved), threshold is "≥1 user message" not "did `new_session()` get called" (so empty-new-chat-then-switch-away doesn't recreate the orphan-file class). Validated `_WEBUI_SESSION_SAVE_MODES = {"deferred", "eager"}`; unknown values fail closed to `deferred`. 132-LOC test file covering both modes + WAL/repair interaction + duplicate-context filtering. + +- **In-app OAuth onboarding flow for OpenAI Codex** (#1650 by @Michaelyklam, refs #1362) — three new endpoints: `POST /api/onboarding/oauth/start` (initiates the device-code flow), `GET /api/onboarding/oauth/poll?flow_id=...` (returns high-level status: `pending|success|expired|cancelled|error`), `POST /api/onboarding/oauth/cancel` (aborts an in-flight flow). **Server-owned lifecycle:** all sensitive provider state (device_auth_id, code_verifier, authorization_code, access_token, refresh_token, token_data) lives in a process-local `_OAUTH_FLOWS` dict keyed by an opaque WebUI-local `flow_id` (UUID4). Browser only sees `flow_id`, `user_code`, `verification_uri`, status — never raw OAuth lifecycle secrets. 15-minute flow timeout. **Token persistence:** successful Codex credentials write to the **active profile's** `auth.json` `credential_pool.openai-codex` (atomic tmp+rename, chmod 0o600 on tmp BEFORE rename so final file never has world-readable window, defense-in-depth post-rename chmod). Allowlist `_ALLOWED_ONBOARDING_OAUTH_PROVIDERS = {"openai-codex"}`; explicit blocklist for anthropic/claude/nous/qwen/gemini/minimax/copilot (rejected with generic "Only OpenAI Codex OAuth is supported in WebUI onboarding right now" — no internal triage state leaked). Implementation matches @nesquena-hermes's prescribed shape from #1362's maintainer comment 1:1 (server-owned state machine, no client-side device codes, abort endpoint, profile-scoped storage, opt-in). Updated `static/onboarding.js` for the `openai-codex` OAuth-pending path with clickable verification URL, prominent user code with copy-to-clipboard, abort button. Updated Codex auth endpoints to current Hermes Agent Codex protocol: `https://auth.openai.com/api/accounts/deviceauth/usercode`, `.../api/accounts/deviceauth/token`, `.../oauth/token`. 182-LOC test file covering route shape, secret-leak prevention, allowlist, expiration, cancellation, profile-scoped credential write, frontend endpoint usage, and the unsupported-provider note copy update. **First step on the #1362 sprint roadmap** — Anthropic Claude OAuth is the planned v2. + +### Tests + +4255 → **4284 passing** (+29 regression tests across `tests/test_issue1617_tps_message_header.py` (31), `tests/test_session_save_mode.py` (~13 new + edits), `tests/test_issue1362_codex_oauth_onboarding.py` (9), plus existing test updates for context-window-persistence, preferences-autosave). 0 regressions. Full suite ~120s. + +### Pre-release verification + +- **Opus advisor on stage-296 combined diff: SHIP verdict.** All 14 verification questions cleared, with focused OAuth security audit on #1650 (in-memory flow lifecycle correct, lock not held during network IO, no flow_id leakage path, allowlist fail-closed, chmod-before-rename correctly implemented per the prior security-fix pattern, sensitive fields scrubbed on every terminal status transition, no internal triage state in error messages). Two minor follow-ups absorbed in-release per <20-LOC defensive policy: + - `_get_active_hermes_home()` exception fallback now logs a `logger.warning(...)` so silent profile-corruption fallback is observable in logs. + - Codex credential pool find-loop now accepts both `source == "manual:device_code"` (current code) AND `source == "oauth_device"` (legacy from prior Codex OAuth implementations) so users with prior creds get their entry updated in-place rather than accumulating a stale duplicate pool entry. +- **#1640 has @aronprins UX-gate APPROVED** (May 04 19:24 UTC) after a tighten request landed (default-off setting + Settings → Preferences toggle, hot-applied without refresh). +- **#1648 implements @nesquena-hermes's prescribed shape** from the #1406 maintainer comment 1:1. +- **#1650 implements @nesquena-hermes's prescribed shape** from the #1362 maintainer comment 1:1, with explicit security-audit alignment (server-owned device codes, opaque flow_id, profile-scoped storage, blocklist for known-OAuth providers awaiting v2). +- **JS syntax**: 5 modified `.js` files (`boot.js`, `messages.js`, `onboarding.js`, `panels.js`, `ui.js`) clean. +- **Browser API sanity**: 11/11 endpoints OK on stage server. +- **Conflict resolution**: clean auto-merge across all 3 PRs (rebased #1640 onto current master from 10-commits-behind base; #1648 + #1650 already on current master; no overlapping code regions across the 3 PRs in `api/streaming.py`, `api/routes.py`, or `static/`). + +### Authors + +- @Michaelyklam — 3 PRs (#1640, #1648, #1650) + +@Michaelyklam continues the strong contribution pattern from #1597, #1598, #1600, #1601, #1621, #1637 — this is now 9 merged PRs across the v0.50.292-296 release window. + +### Trust boundary note + +This release ships the first user-facing OAuth flow in the WebUI. Token storage path, atomic write semantics, chmod timing, server-side flow state, and the allowlist/blocklist pattern are all in scope for security reviewers reviewing v0.50.296. The Hermes Agent CLI's `auth.json` format is the source-of-truth contract — both the WebUI and CLI write the same `credential_pool.openai-codex` shape, so credentials added via either surface are usable by either surface. + ## [v0.50.295] — 2026-05-04 ### Fixed (3 PRs — closes #1360, #1451, #1463, #1618, #1619) diff --git a/ROADMAP.md b/ROADMAP.md index 4696cf53..54a10f45 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -2,7 +2,7 @@ > Web companion to the Hermes Agent CLI. Same workflows, browser-native. > -> Last updated: v0.50.295 (May 04, 2026) — 4255 tests collected +> Last updated: v0.50.296 (May 04, 2026) — 4284 tests collected > Test source: `pytest tests/ --collect-only -q` > Per-version detail: see [CHANGELOG.md](./CHANGELOG.md) diff --git a/TESTING.md b/TESTING.md index ab0cbb1d..eeeb72d1 100644 --- a/TESTING.md +++ b/TESTING.md @@ -1835,8 +1835,8 @@ Bridged CLI sessions: --- -*Last updated: v0.50.295, May 04, 2026* -*Total automated tests collected: 4255* +*Last updated: v0.50.296, May 04, 2026* +*Total automated tests collected: 4284* *Regression gate: tests/test_regressions.py* *Run: pytest tests/ -v --timeout=60* *Source: /* diff --git a/api/oauth.py b/api/oauth.py index 63eb1ed2..621a4814 100644 --- a/api/oauth.py +++ b/api/oauth.py @@ -61,7 +61,15 @@ def _get_active_hermes_home() -> Path: from api.profiles import get_active_hermes_home return Path(get_active_hermes_home()) - except Exception: + except Exception as exc: + # Per Opus advisor on stage-296: log the silent fallback so a corrupt + # profile state ending up writing tokens to ~/.hermes (instead of the + # active profile) is observable in logs rather than failing silently. + logger.warning( + "Falling back to ~/.hermes for OAuth credential storage: " + "active-profile resolution failed: %s", + exc, + ) return Path.home() / ".hermes" @@ -139,8 +147,14 @@ def _persist_codex_credentials(hermes_home: Path, token_data: dict[str, Any]) -> now = _now_iso() entry = None + # Per Opus advisor on stage-296: also accept the legacy `source == + # "oauth_device"` value so users with prior Codex OAuth credentials + # (written by older WebUI versions before this PR's source-key change) + # get their existing entry updated in-place rather than accumulating a + # stale duplicate pool entry. + _accept_sources = {"manual:device_code", "oauth_device"} for candidate in entries: - if isinstance(candidate, dict) and candidate.get("source") == "manual:device_code": + if isinstance(candidate, dict) and candidate.get("source") in _accept_sources: entry = candidate break if entry is None: