mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-19 21:21:36 +00:00
* fix(agents): surface utility-model narration failures and show the utility model in models status Narration failures were verbose-only, so a dead utility-model credential silently degraded channel progress drafts back to raw tool lines. The narrator now warns once per turn when it disables after consecutive failures, naming the utility model + auth profile, and openclaw models status renders the resolved utility model (config / provider default / disabled) in human and JSON output. Formatting verified remotely via Testbox format:check (hook bypassed: no node_modules in this worktree). Fixes #104764 * fix(models): include the utility model in models status auth analysis The utility ref was rendered but not registered as a provider use, so missing utility-provider auth kept --check green (Codex review P2). Utility completions ride the plain API path like image models. Formatting verified remotely via Testbox format:check. * fix(models): register the utility model only for otherwise-unused providers main's route analysis reports per-model issues; a same-provider utility ref duplicated route reports (CI: incompatible-routes test). Shared providers are already analyzed via their configured uses; utility-only providers still enter the analysis so they stay visible to status. Formatting verified remotely via Testbox format:check. * fix(models): always analyze the utility model route in models status Same-provider dedupe hid the documented incident class: an OAuth-healthy primary says nothing about the utility model's plain API route (Codex review round 3). The openai route-test fixture now pins utilityModel off so route tests stay focused on their configured models, and a dedicated test covers the OAuth-primary/api-key-utility scenario. Formatting verified remotely via Testbox format:check. * fix(models): give the utility model full text-route analysis in models status Uses without codex fallback previously skipped per-model route resolution (image-auth scoping), so the utility ref never produced missing-auth route issues. Route scope is now explicit: text uses get evaluateModelAuth, image uses keep provider-wide availability. Formatting verified remotely via Testbox format:check. * fix(models): probe the configured utility model and document source labels --probe candidates now include the utility ref so utility-only providers probe the actual configured model instead of an arbitrary catalog entry (Codex review round 4). Inline comment records that the status resolver never falls back to the primary, so 'provider default' labels are exact. Formatting verified remotely via Testbox format:check. * fix(models): canonicalize the reported utility ref and dedupe route diagnostics utilityModel accepts aliases, so status now reports the resolved provider/model instead of the raw alias, and identical route issues from overlapping primary/utility refs collapse to one entry (Codex round 5). Formatting verified remotely via Testbox format:check.