[Bug] Welcome header overwritten by claude-in-chrome MCP set_permission_mode race condition on startup

Resolved 💬 2 comments Opened Apr 21, 2026 by felipesja Closed Apr 21, 2026

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:

  1. Have Claude in Chrome enabled by default (claudeInChromeDefaultEnabled: true in ~/.claude.json).
  2. Open Claude Code in a git-tracked project (reproduced in 3 separate Next.js projects).
  3. 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-chrome MCP calls set_permission_mode 3 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_mode triggers 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.

---

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗