Skip to content
6 changes: 3 additions & 3 deletions apps/web/src/components/chat/TraitsPicker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ describe("buildTraitsTriggerDisplay", () => {
});
expect(display([serviceTierDescriptor("priority")])).toEqual({
label: "Fast",
showFastModeIcon: false,
showFastModeIcon: true,
});
});

Expand All @@ -117,10 +117,10 @@ describe("buildTraitsTriggerDisplay", () => {
});
});

it("falls back to a text label when fast mode is the only trait", () => {
it("keeps the bolt alongside the text label when fast mode is the only trait", () => {
expect(display([fastModeDescriptor(true)])).toEqual({
label: "Fast",
showFastModeIcon: false,
showFastModeIcon: true,
});
expect(display([fastModeDescriptor(false)])).toEqual({
label: "Normal",
Expand Down
10 changes: 1 addition & 9 deletions apps/web/src/components/chat/TraitsPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -473,14 +473,6 @@ export const TraitsMenuContent = memo(function TraitsMenuContentImpl({
);
});

/**
* Build the traits trigger's text label plus whether the fast-mode bolt should
* render. Claude and Cursor expose fast mode as a boolean, while Codex exposes
* it through the Standard/Fast service tiers. In either form, fast mode is a
* lightning bolt when on and nothing at all when off. The one exception is when
* fast mode is the only trait, where a bare bolt (or bare chevron) would leave
* the trigger unreadable.
*/
export function buildTraitsTriggerDisplay(input: {
provider: ProviderDriverKind;
descriptors: ReadonlyArray<ProviderOptionDescriptor>;
Expand Down Expand Up @@ -526,7 +518,7 @@ export function buildTraitsTriggerDisplay(input: {
// off an empty label list alone would also catch descriptors that resolved to
// no label at all, printing a bogus "Normal" for a model without fast mode.
if (labels.length === 0 && fastModeFallbackLabel !== null) {
return { label: fastModeFallbackLabel, showFastModeIcon: false };
return { label: fastModeFallbackLabel, showFastModeIcon: fastModeEnabled };
}
return { label: labels.join(" · "), showFastModeIcon: fastModeEnabled };
}
Expand Down
Loading