[Bug] Welcome header overwritten by claude-in-chrome MCP set_permission_mode race condition on startup
Bug Description
Title: Welcome header dismissed instantly by claude-in-chrome MCP set_permission_mode race on startup
Environment:
- Claude Code v2.1.116
- Windows 11 Home SL 10.0.26200
- Terminal: WezTerm (
TERM=xterm-256color,TERM_PROGRAM=WezTerm) - Shell: Git Bash / PowerShell (reprodutível em ambos)
- Node native install
- Plugins: frontend-design, security-guidance, playwright, vercel-plugin, context7
- Claude in Chrome: enabled
Summary:
With claudeInChromeDefaultEnabled: true, the startup welcome header (including "What's new" release notes) appears and is dismissed/overwritten within milliseconds in project directories. Setting claudeInChromeDefaultEnabled: false makes the welcome render normally.
Repro:
- Have Claude in Chrome enabled by default (
claudeInChromeDefaultEnabled: truein~/.claude.json). - Open Claude Code in a git-tracked project (reproduced in 3 separate Next.js projects).
- Welcome header flashes for <100ms then gets replaced by the REPL.
Not reproduced in: non-project directories like C:\ or C:\Users\Felipe — welcome persists correctly there.
Evidence from debug log (--debug):
claude-in-chromeMCP callsset_permission_mode3 times during startup window (t=26.805s, 26.956s, 28.931s).- Frame metrics:
High write ratio: blit=0, write=1579 (100.0% writes), screen=56x157— full redraw churn. - Each
set_permission_modetriggers re-render that overwrites the welcome buffer before the user can read it.
Workaround:
Set claudeInChromeDefaultEnabled: false in ~/.claude.json. Welcome renders correctly; release notes visible via /release-notes.
Expected:set_permission_mode calls during initial render should not clobber the welcome/release-notes screen, or Claude in Chrome should defer its permission-mode sync until after the welcome has been dismissed by the user.
---
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗