Skip to content

fix(desktop): disambiguate provider-prefixed model names - #39892

Open
yinkev wants to merge 3 commits into
NousResearch:mainfrom
yinkev:fix-desktop-model-picker-prefixed-ids
Open

fix(desktop): disambiguate provider-prefixed model names#39892
yinkev wants to merge 3 commits into
NousResearch:mainfrom
yinkev:fix-desktop-model-picker-prefixed-ids

Conversation

@yinkev

@yinkev yinkev commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • keep friendly model labels for normal model ids
  • detect when provider-prefixed ids would collapse to the same friendly name in desktop model menus
  • preserve the full provider/model prefix only for those ambiguous rows in the model dropdown and Edit Models dialog

Fixes #39878.

Tests

  • npm ci
  • cd apps/desktop && npm exec vitest -- run src/lib/model-status-label.test.ts --environment jsdom
  • cd apps/desktop && npm exec eslint -- src/lib/model-status-label.ts src/lib/model-status-label.test.ts src/app/shell/model-menu-panel.tsx src/components/model-visibility-dialog.tsx
  • cd apps/desktop && npm run type-check
  • git diff --check

Duplicate check

  • gh search prs --repo NousResearch/hermes-agent --state open '39878 desktop strip model names provider/model duplicate'

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have labels Jun 5, 2026
@teknium1 teknium1 added the sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users label Jul 14, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the focused desktop fix. The premise remains valid on current main: modelBaseId() strips provider prefixes in apps/desktop/src/lib/model-status-label.ts:41-45, while the affected dropdown and Edit Models renderers consume that normalized label at apps/desktop/src/app/shell/model-menu-panel.tsx:246 and apps/desktop/src/components/model-visibility-dialog.tsx:112.

The PR detects collisions after the existing friendly-label normalization and preserves the raw prefix only for ambiguous rows, while leaving normal labels unchanged. Both current affected render paths are covered by the proposed wiring, and the helper tests cover the collision and preserved-prefix behavior.

Automated hermes-sweeper review.

@yinkev

yinkev commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Ported the fix onto current main and expanded behavioral coverage.

  • Detects friendly labels shared by distinct model IDs.
  • Preserves provider prefixes only for ambiguous rows in both the model menu and Edit Models dialog; unique rows keep friendly labels.
  • Preserves existing variant tags and date-pin stripping.
  • Added helper regressions plus a rendered menu regression.
  • Local focused suites: 17 passed; Prettier, ESLint, and narrowed strict TypeScript passed.
  • GitHub desktop typecheck/tests and all required checks are passing; Docker jobs are still completing.

Ready for maintainer review once CI settles.

@yinkev
yinkev force-pushed the fix-desktop-model-picker-prefixed-ids branch from 1b50142 to e2683e7 Compare July 25, 2026 03:08
@yinkev

yinkev commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Portfolio refresh 2026-07-25: rebased onto current main; the focused model-label/rendering tests, ESLint, desktop type-check, diff hygiene, and all required CI checks are green.

@yinkev
yinkev force-pushed the fix-desktop-model-picker-prefixed-ids branch from e2683e7 to a64b86c Compare July 28, 2026 00:33
@yinkev
yinkev force-pushed the fix-desktop-model-picker-prefixed-ids branch from a64b86c to 6106c82 Compare July 29, 2026 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Don't strip model names on desktop app

3 participants