Auth init now prefers a valid cached_token (SessionToken) over xai.api_key, dropping the expired-token OIDC refresh/failure path and lock file. Model catalog notifies clients when a real catalog is present. Home gains a bundled/ tree (ag…
Changelog
[changed] Default auth method selection prioritizes cached_token over xai.api_key; init reports auth_mode=Oidc with methods ["xai.api_key","cached_token","grok.com"] when a current non-expired token is on disk
[new] Cached-token handler sets api_key from SessionToken; auth start records method=cached_token
[removed] OIDC refresh enter/attempt/terminal-error events and related recovery/permanent-failure short-circuit surfaces (auth recovery:*, auth.permanent_failure.*, auth.refresh.permanent_failure, refresh_chain short-circuit, prepare_sampling_config-without-session-key)
[removed] Auth lock acquire/attempt events and auth.json.lock
[removed] auth 401 attribution event
[changed] Model catalog path: model catalog: notifying clients (current_model_id, model_count) when a real catalog exists; fetch/refresh-failed events no longer emitted on that path; auth refresh watcher starts with had_real_catalog=true
[new] Home bundled/ layout with agents (explore, general-purpose, plan), personas, roles, skills (including docx/pptx scripts and shared resume-session), plus bundled/manifest.json
[changed] trace.upload.decision uses remote settings (telemetry_source=remote, upload_reason=proxy) and enables upload when remote trace upload is on; prior default/ZDR-disabled decision shape no longer emitted on this path
[changed] shell.turn.inference_done may report ttft_ms=null