Skip to content

Show agent provider icons in the thread list, with color options - #4089

Open
mistakeknot wants to merge 2 commits into
get-bb:mainfrom
mistakeknot:sidebar-provider-icons
Open

mistakeknot wants to merge 2 commits into
get-bb:mainfrom
mistakeknot:sidebar-provider-icons

Conversation

@mistakeknot

@mistakeknot mistakeknot commented Sep 22, 2026

Copy link
Copy Markdown

Human comments

What was wrong

The sidebar thread list gives no hint of which agent provider a thread runs on. For someone running threads on several providers (for example, moving a long-lived thread between Claude Code and Codex as quota runs out), the only way to tell is to open each thread. The mobile recents list already draws a provider tile, and the sidebar list had no equivalent. See #4088.

What changed

  • plugins/thread-list/app/rows/ThreadRow.tsx: a ThreadRowProviderIcon leads the title. It looks the row's providerId up in experimental_useProviders() and draws experimental_ProviderIcon (providerKind="agent"), labelled and titled with the provider's displayName. It draws nothing until the directory knows the id, or when the preference is off.
  • plugins/thread-list/shared/preferences.ts / app/preferences/atoms.ts: new synced showProviderIcons preference (boolean, default true, no legacy key).
  • plugins/thread-list/app/list/SidebarViewItems.tsx: Organize gains a Rows group with a Provider icons checkbox, beside the existing Groups → By environment item.
  • Icon color (second commit): app/rows/provider-icon-color.ts resolves each icon's color from, in order, a custom per-provider light/dark color (providerIconColors), the theme's --provider-icon-<id> then --provider-icon CSS variables, and the providerIconColor mode, brand (the provider's own iconTint, default) or monochrome (row text color). Organize → Rows adds Brand colors / Monochrome and a Customize colors… dialog (app/list/ProviderIconColorsDialog.tsx) with light and dark pickers per provider. Colors are validated with isPresentationTintColor in the preference schema and again before use.
  • Docs: docs/configuration.md (new "Thread list provider icons" subsection, including color precedence), theming.md (the two theme variables) and the thread-list skill's key list. bb thread-list prefs set showProviderIcons false works through the existing generic prefs CLI.
  • No wire, protocol, or core app changes.

How you verified

  • New tests in plugins/thread-list/app/rows/ThreadRow.test.tsx cover a known provider drawing its icon with the provider's label, the preference hiding it, and an unknown provider id drawing nothing. SidebarHeaderControls.test.tsx covers the Rows → Provider icons toggle writing the preference both ways.
  • provider-icon-color.test.ts, ProviderIconColorsDialog.test.tsx and shared/preferences.test.ts cover the color precedence, the dialog's defaults, partial edits and reset, and schema rejection of non-color values.
  • npx vitest run in plugins/thread-list: 29 files, 326 tests passed. tsc --noEmit in plugins/thread-list: clean.
  • An earlier version of the same row change on the pre-Delete the built-in thread list and show the placeholder while the plugin loads #4041 built-in list ran on a live 0.43.3 install. This plugin version has only been exercised in tests, not in a browser.

Fixes #4088

AGENT GENERATED

mistakeknot and others added 2 commits September 22, 2026 13:04
Each thread row now leads its title with its agent provider's mark, so it is
clear at a glance whether a thread runs on Claude Code, Codex, or another
backend. The row resolves the mark through the SDK's provider directory and
`experimental_ProviderIcon`, and draws nothing until the directory knows the
provider id.

A new `showProviderIcons` preference, default on, controls it from Organize →
Rows → Provider icons or `bb thread-list prefs set showProviderIcons false`.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Provider icons in the thread list now take their color from, in order: a
custom light/dark color for that provider, the theme's
`--provider-icon-<id>` then `--provider-icon` variables, and finally the new
`providerIconColor` mode, `brand` (each provider's own tint, the default) or
`monochrome` (the row text color).

Organize → Rows gains Brand colors / Monochrome and a Customize colors…
dialog with a light and dark picker per provider, backed by the new
`providerIconColors` preference. Colors are validated as CSS colors on write
and again before use.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@mistakeknot mistakeknot changed the title Show agent provider icons in the thread list Show agent provider icons in the thread list, with color options Sep 22, 2026

This branch has not been deployed

No deployments
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.

Show agent provider icons in the sidebar thread list

1 participant