feat(bot-mode): roster shows paid vs free/local badges (salvage #88086) - #89723
Closed
teknium1 wants to merge 2 commits into
Closed
feat(bot-mode): roster shows paid vs free/local badges (salvage #88086)#89723teknium1 wants to merge 2 commits into
teknium1 wants to merge 2 commits into
Conversation
…l + locally-hosted flag)
Port of LarryAGuy/Hermes-Bot-Mode#109 to the in-tree Bot Mode plugin.
Every roster row now shows the user's locale-aware currency symbol
(e.g. $ / £ / €, resolved from the app/OS locale) next to bots whose
LLM costs money, and 🆓 next to bots provably running a free model.
One glance tells you what each teammate is burning.
- Free requires positive evidence — a :free model suffix (OpenRouter/
Nous convention), a local serving provider (lmstudio, ollama,
llama.cpp, ...), or $0 catalog pricing from model.options.
Anything unprovable counts as paid (fail-closed: the roster never
hides a cost).
- Locally hosted flag — a per-bot checkbox in the edit-profile
advanced pane ('runs on my own hardware') persisted via bot meta
(local storage + server ui_meta), overriding every other signal.
- Badge color is inline-styled emerald (#10b981): the plugin class
pipeline does not generate arbitrary text-[#hex] utilities.
- Bots without their own model classify against the launch profile's
default model so inherit rows still show the true cost state.
- Delegation model is included: a bot whose own model is free but
whose subagent model is paid still counts as paid.
Tests: cost-badge.test.mjs (classifier units, locale currency,
locally-hosted override, saveBotMeta persistence, source regressions).
155/155 plugin tests pass.
- Drop the dead delegation_model/delegation_provider branch in botCostState — no such field exists anywhere on main, so the branch could never fire. - Replace the REGION_CURRENCY locale map + navigator.language lookup with a plain '$' — provider pricing is USD regardless of the user's locale. - Switch the paid badge from emerald (#10b981) to neutral amber (#f59e0b) so green stays reserved as the 'free' signal; 🆓 keeps marking free/local rows. - Tests updated to match (currency-map cases dropped, classifier cases kept); contributor email mapped for attribution CI.
Contributor
૮ >ﻌ< ა ci reviewran on b297c1a — refactor(desktop): review trims for roster cost badges (#880
|
Contributor
Author
|
Closing as not planned per maintainer decision (see #88086) — cost badges on the roster aren't a product direction we're taking. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Bot Mode roster now shows at a glance which bots run on paid LLMs ($ badge) and which are free or locally hosted (🆓), with a "Locally hosted" declaration in the edit-profile advanced pane.
Salvage of #88086 by @LarryAGuy (the original Hermes-Bot-Mode plugin author; port of his upstream #109), cherry-picked with authorship preserved, plus three review-mandated trims in a follow-up commit.
Changes
:freesuffix, local-provider allowlist, or catalogpricing[model].free === true), roster badges, "Locally hosted" checkbox persisted via bot meta, inherit-row classification vs the launch profile's default modeldelegation_model/delegation_providerbranch (field exists nowhere on main)$(provider pricing is USD)contributors/emails/hedrick.larry@gmail.com: attribution mappingValidation
Infographic