Skip to content

question/bug: Electron renderer can go blank after extension UI updates, especially after Plannotator plan review #305

Description

@marcinkardas

Operating system(s)

  • Windows
  • macOS
  • Linux

What happened?

(@IgorWarzocha, mam wrażenie, że ten błąd mi się już przydarzył kilka razy przed pobraniem wczoraj zaktualizowanego repo z nowymi commitami. Mam widgety renderujące status subagentów / listę to-do, a teraz głównie dzieje mi się to po użyciu Plannotatora. Póki co nie wiem więcej, debuguje to. Może natrafiłeś już na ten błąd? Poniżej opis issue.)

I am seeing an intermittent issue in a local fork where the Electron window becomes blank after some time, often around a plan-review flow with active custom extension UI widgets.

Important context: the extensions involved are custom. I am mainly trying to understand whether this points to a known failure mode in extension UI/status updates, runtime-host lifecycle, Plannotator/plan-review integration, or Electron renderer recovery.

When the issue happens:

  • Electron shows only the dark BrowserWindow background and macOS traffic lights.
  • The Vite web app at http://127.0.0.1:5173/ still works in a normal browser.
  • Logs contain many repeated extension status/widget updates.
  • I also saw:
    MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process].

CDP observations while the window was blank:

  • /json/list still showed a page target.
  • Connecting to the page target worked, but Runtime.enable timed out.
  • Browser-level CDP showed browser/GPU/network processes, but no responsive renderer process.
  • Sending Page.reload via CDP restored the GUI without restarting Electron.
    So the immediate symptom seems to be a gone/hung Electron renderer rather than Vite failing.

Steps to reproduce

In my local fork this tends to happen after:

  1. Running bun run dev.
  2. Using Electron with custom extension UI widgets enabled.
  3. Using Plannotator / completing or accepting a plan-review flow.
  4. Waiting while repeated extension status/widget updates are emitted.

I can try to build a minimal repro extension if that would be useful.

Agent implementation prompt

Investigate whether repeated extension UI/status/widget updates or runtime-host reinitialization can cause the Electron renderer to hang/go blank. Inspect listener registration and lifecycle around extension binding refresh, runtime-host startup/shutdown, and Electron renderer recovery. Add diagnostics for render-process-gone, unresponsive, did-fail-load, renderer console errors, and duplicate listener registration. If reproducible, implement the smallest fix to make extension UI updates idempotent/throttled and prevent renderer hangs or unrecovered blank windows.

App version or commit

0.1.66-dev

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions