[BUG] Built-in /diff pane holds mod toasts, undocumented and contradicted by the screen map
Status Open
Reported on v2.1.287
Maintainer reply None cached
Activity 4 comments · opened Oct 2, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
The built-in /diff mod opens its pane with holdToasts: true (mods/diff/hooks/register.ts), so every $.ui.toast from another mod stays hidden until /diff closes. Nothing on the docs site says so.
The screen map shows the toast in the transcript's top-right corner beside the pane, as if both stay visible:
<img width="600" height="336" alt="Image" src="https://github.com/user-attachments/assets/c13fa28c-fddb-42d9-b2d0-fbb6051020ef" />
The overview's built-in mods table says cc-plugin-diff "takes over /diff and draws its pane", and holdToasts appears only as an option of $.ui.open. To show a toast while /diff is open, a mod has to hook ui.open for { id: 'diff' } and strip holdToasts:
on('ui.open', { id: 'diff' }, async (_$, e, next) => {
const { holdToasts, ...pane } = e
return next(pane)
})
What Should Happen?
Any of these:
/diffshows toasts from mods- the built-in mods table notes that
/diffholds toasts - the toast docs or the screen map say that an open pane can hold toasts
Steps to Reproduce
- Load a mod that calls
$.ui.toast('hello', { timeoutMs: 60000 })on a timer. - Run
/diffto open the pane. - The toast doesn't appear until
/diffcloses.
Claude Model
Opus (Opus 5.5)
Is this a regression?
No, this never worked
Claude Code Version
2.1.287 (Claude Code)
Platform
Anthropic API
Operating System
Debian 13.7
Terminal/Shell
Other (Ghostty)
🤖 Generated with Claude Code
4 Comments
Fixed in my fork: https://github.com/adri22235/claude-code/pull/7 (commit https://github.com/adri22235/claude-code/commit/43ac6aa4a4e7865a3d5e9a799d308866b1e3abd9).
Every pane open in
mods/diff/hooks/register.tspassesholdToasts: true, both docked and inline. That matches what the engine does behind its own side panel (seePaneOpenArgs.holdToastsinmods/types/claude-code.d.ts), so the fix documents the behaviour instead of changing it:mods/diff/README.md: says the pane holds transient toasts in both placements. Before, only the inline dialog's description mentioned it. Toasts show once the pane closes, and pinned warnings still show.mods/README.md: the built-in mods table'sdiffrow notes that toasts wait while the pane is up.tsc -p mods/tsconfig.jsonandclaude plugin testpass for every mod. The screen map and toast pages on code.claude.com aren't in this repo, so they still need updating on the docs side.Thanks, but I want to keep using the official Claude Code binary.
I'd like to work on this — please assign it to me. I'll open a PR shortly.
Update: I have the docs fix ready on
akhil9tiet/claude-code@fix/99026-diff-pane-toast-docs— one sentence added tomods/diff/README.mdnoting that toasts from other mods are held while the/diffpane is open (compare: https://github.com/anthropics/claude-code/compare/main...akhil9tiet:claude-code:fix/99026-diff-pane-toast-docs). However, this repo restricts pull request creation to collaborators, so I can't open the PR myself. Happy to open it if that changes, or a maintainer is welcome to take the branch.