diff --git a/src/browser/features/ChatInput/placeholderTips.test.ts b/src/browser/features/ChatInput/placeholderTips.test.ts index 44f44ed518..d62e4ae942 100644 --- a/src/browser/features/ChatInput/placeholderTips.test.ts +++ b/src/browser/features/ChatInput/placeholderTips.test.ts @@ -8,12 +8,6 @@ interface StorybookGlobal { const TWENTY_MIN_MS = 20 * 60 * 1000; describe("PLACEHOLDER_TIPS", () => { - test("every tip references a slash command", () => { - for (const tip of PLACEHOLDER_TIPS) { - expect(tip).toMatch(/\/[A-Za-z+]/); - } - }); - test("tips are unique", () => { const unique = new Set(PLACEHOLDER_TIPS); expect(unique.size).toBe(PLACEHOLDER_TIPS.length); diff --git a/src/browser/features/ChatInput/placeholderTips.ts b/src/browser/features/ChatInput/placeholderTips.ts index fb3e14a70c..3707dfd0b3 100644 --- a/src/browser/features/ChatInput/placeholderTips.ts +++ b/src/browser/features/ChatInput/placeholderTips.ts @@ -11,11 +11,13 @@ * same bucket and you still see the same tip. The bucket boundary is the * only thing that advances the carousel. * - * Every tip in this list must be wired up as a real slash command (registry - * or built-in skill) AND ungated by experiments (no `experimentGate` on the - * command definition). Advertising an unimplemented or feature-flag-locked - * command sends the user into an unknown-command / experiment-required dead - * end the moment they follow the suggestion. When adding a tip, grep + * Every tip in this list must surface a real, always-available input feature: + * either a slash command (registry or built-in skill) that is ungated by + * experiments (no `experimentGate` on the command definition), or a backslash + * symbol shortcut (see `symbolShortcuts.ts`, which is always on). Advertising + * an unimplemented or feature-flag-locked command sends the user into an + * unknown-command / experiment-required dead end the moment they follow the + * suggestion. When adding a slash-command tip, grep * `src/browser/utils/slashCommands/registry.ts` for `experimentGate` to make * sure the command you're surfacing isn't gated. */ @@ -50,6 +52,7 @@ export const PLACEHOLDER_TIPS: readonly string[] = [ "Try /clear --soft to reset context while keeping the chat visible", "Try /new to start a fresh workspace from the trunk branch", "Try /vim to toggle vim keybindings in the chat input", + "Try \\alpha or \\sum to insert LaTeX-style symbols like α and ∑ as you type", ]; /**