[BUG] spinnerTipsOverride with excludeDefault:false still hides all default tips
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Bug
Setting spinnerTipsOverride with excludeDefault: false (or omitting excludeDefault entirely) is documented to add custom tips to the default rotation. In practice, only the custom tip(s) appear — all default tips are silently filtered out.
Actual: Only the custom tip ever appears. Default tips are never shown.
Root cause
The merge function correctly checks excludeDefault and concatenates defaults + custom tips. However, each default tip passes through an isRelevant() filter and a cooldownSessions gate before inclusion. Custom tips bypass both filters (isRelevant: async () => true, cooldownSessions: 0).
The relevant code (decompiled from v2.1.92):
// Custom tips — no filtering
return _.tips.map((q, K) => ({
id: `custom-tip-${K}`,
content: async () => q,
cooldownSessions: 0,
isRelevant: async () => true
}));
// Merge function
async function Wt_(H) {
let q = Z8().spinnerTipsOverride,
K = rv5(); // custom tips
if (q?.excludeDefault && K.length > 0)
return K; // excludeDefault=true → custom only
let O = [...nv5, ...iv5], // default tips
$ = await Promise.all(O.map((z) => z.isRelevant(H)));
return [
...O.filter((z, A) => $[A])
.filter((z) => Pt_(z.id) >= z.cooldownSessions),
...K
];
}
The isRelevant() and/or cooldownSessions filters eliminate all default tips, so the returned array contains only custom tips despite excludeDefault being false.
Suggested fix
When excludeDefault is explicitly false (or omitted), the relevance/cooldown filters should still allow a baseline pool of default tips through — or the documentation should clarify that defaults are context-dependent and may not appear.
Environment
- Claude Code v2.1.92
- macOS (Darwin arm64)
What Should Happen?
Expected: Custom tip appears occasionally alongside the full set of default tips.
Error Messages/Logs
Steps to Reproduce
Config
"spinnerTipsOverride": {
"excludeDefault": false,
"tips": ["My custom tip here"]
}
Claude Model
Sonnet (default)
Is this a regression?
No, this never worked
Last Working Version
_No response_
Claude Code Version
v2.1.92
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
iTerm2
Additional Information
_No response_
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗