Skip to content

stage-356: small 2-PR follow-up batch — #2234 aux-model routing + #2265 mixed-case provider canonicalization (closes #2245)#2267

Merged
nesquena-hermes merged 5 commits into
masterfrom
stage-356
May 14, 2026
Merged

stage-356: small 2-PR follow-up batch — #2234 aux-model routing + #2265 mixed-case provider canonicalization (closes #2245)#2267
nesquena-hermes merged 5 commits into
masterfrom
stage-356

Conversation

@nesquena-hermes
Copy link
Copy Markdown
Collaborator

stage-356 — small 2-PR follow-up batch (v0.51.63)

Fourth full PR sweep of the day. Two non-hold non-draft PRs cleared fit-screen, both → MERGE QUEUE.

+268 / -7 across 5 files. Two PRs from two contributors.

Composition

PR Author LOC Surface Closes
#2234 Jordan-SkyLF +11/-4 api/routes.py + tests (post-v0.51.62 rebase, 3rd follow-up commit)
#2265 Michaelyklam +257/-3 api/config.py + new test file #2245

PR Detail

#2234 — Use documented aux model for update summaries

The THIRD and final follow-up commit (97b68f0) from PR #2234, now rebased onto current master. The category-refinement portion shipped in v0.51.61 (stage-354) and the rebase + scrollable-summary portion shipped in v0.51.62 (stage-355).

Concern: the original implementation looked up an auxiliary.update_summary config key — but that's a WebUI-only magic key, not a documented Hermes Agent auxiliary task. Users would have to guess the config key existed.

Fix: route update summary generation through the documented auxiliary.compression text-model slot. Main-model fallback is preserved if auxiliary resolution or generation fails. Adds a route comment explaining the mapping rationale (summary generation conceptually IS summarization, which is what compression provides).

#2265 — Fix configured provider models after key canonicalization (closes #2245)

Real bug: when users define a custom provider with mixed-case (CLIPpoxy) or snake_case (snake_case_provider) key in config.yaml, canonicalization lower-cases the key. Subsequent model-allowlist lookup uses the canonicalized key but config.yaml still stores the raw key, so the lookup returns empty and the model picker dropdown shows no models for that provider.

Fix: api/config.py maps canonical provider IDs back to their raw config.yaml provider keys before loading provider_cfg. Original config keys are preserved for provider settings rendering. Built-in providers (openai, anthropic, etc.) and fallback behavior unchanged.

242-line regression test covering mixed-case + snake_case + built-in unchanged + _PROVIDER_MODELS-only fallback.

Held PRs re-evaluated this sweep

Per the rapid-re-sweep rule: pulled latest comments on each held PR.

Verification

  • Targeted pytest (6 PR surfaces): 96/96 pass in 4.9s
  • Full pytest: exit 0
  • run-browser-tests.sh: 20/20 QA + 11/11 API checks PASSED in 104s
  • Live UI smoke on 8789: zero JS errors
  • Phase 5 strict merge-marker check: zero markers
  • Python syntax: clean across all 5 modified files
  • CI on each constituent PR (latest SHA): 3/3 SUCCESS

Opus Advisor Review

SHIP both. No SHOULD-FIX.

Opus directly verified:

Minor observations (not blockers, Opus noted)

Closes / refs

Stats

5 files changed, 268 insertions(+), 7 deletions(-)

Jordan-SkyLF and others added 5 commits May 14, 2026 08:50
fix: use documented aux model for update summaries (Jordan-SkyLF, post-rebase)
Fix configured provider models after key canonicalization (Michaelyklam, closes #2245)
…ed for 2-PR stage-356 (#2234 post-rebase aux-model + #2265 mixed-case provider key fix)
@nesquena-hermes nesquena-hermes merged commit e5ca59b into master May 14, 2026
3 checks passed
@nesquena-hermes nesquena-hermes deleted the stage-356 branch May 14, 2026 16:25
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request May 14, 2026
… 0.51.63) (#471)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/nesquena/hermes-webui](https://github.com/nesquena/hermes-webui) | patch | `0.51.62` → `0.51.63` |

---

### Release Notes

<details>
<summary>nesquena/hermes-webui (ghcr.io/nesquena/hermes-webui)</summary>

### [`v0.51.63`](https://github.com/nesquena/hermes-webui/releases/tag/v0.51.63)

[Compare Source](nesquena/hermes-webui@v0.51.62...v0.51.63)

##### What's Changed

- stage-356: small 2-PR follow-up batch — [#&#8203;2234](nesquena/hermes-webui#2234) aux-model routing + [#&#8203;2265](nesquena/hermes-webui#2265) mixed-case provider canonicalization (closes [#&#8203;2245](nesquena/hermes-webui#2245)) by [@&#8203;nesquena-hermes](https://github.com/nesquena-hermes) in [#&#8203;2267](nesquena/hermes-webui#2267)
- fix: use documented aux model for update summaries by [@&#8203;Jordan-SkyLF](https://github.com/Jordan-SkyLF) in [#&#8203;2234](nesquena/hermes-webui#2234)
- Fix configured provider models after key canonicalization by [@&#8203;Michaelyklam](https://github.com/Michaelyklam) in [#&#8203;2265](nesquena/hermes-webui#2265)

**Full Changelog**: <nesquena/hermes-webui@v0.51.62...v0.51.63>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/471
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(models): custom provider with mixed-case key loses all models from picker dropdown

3 participants