fix(agent-pane): hand saved CEF covers off on the painted frame

TE
6d ago
+117-4

HOLD: Keep this PR open while exact-head native suites and Release compile are verified; do not merge.
Leo, 2026-10-27: "when you just restart and update the app? There's still that black screen and what not in the agent chat area."

A saved transcript remained beneath the new Chromium page for the native parent’s fade. Chromium normally draws in a separate child window, so changing that parent’s alpha cannot fade its pixels. The already-drawn page’s transparent regions can therefore reveal the old transcript during that handoff.

Replace the saved CEF frame in the same turn as the page’s genuine after-render pane.painted report. Retain the existing WebKit fade and watchdog behavior. The saved frame still stays until the page reports paint; #24262’s matching-image guard and cleanup remain intact. No new timer or animation loop is introduced: the existing reveal cancels the loading timers and releases its callbacks as before.

This is a bounded startup-cover fix. It does not establish that Leo’s steady-state streaming flicker is repaired. A 3,000-turn production-React browser probe with Composer, Session Info and the running-agents bar mounted recorded 0 replaced/hidden/moved surfaces in 120 paint observations and no tasks over 50 ms.

Validation for 3139f04f472f8d2514239fffa5ef379a751539d7:

  • The exact-head independent Codex gpt-6-astra high whole-diff review returned SHIP with no correctness findings. The product code is unchanged from the reviewed base merge; this repair passes testRoot: true for the synthetic Chromium fixture, so another suite's process-wide page-root registration cannot reject it.
  • The preceding head's focused fleet job f5fd6580ec7f569658a95b05 passed SavedCoverReveal (both engines), ColdChatReveal, CachedChatPaintFade and three older failing test names. The only failure was SidebarFooterAlignmentTests/theAccountAndSearchShareOneLineAboveTheBottomMargin, which fails with the same six geometry errors on base 14b20f800934bc61c9b162e76df164693b795fe3, fleet job ed8b6c7b61e390be2d7bb943.
  • Fresh focused gate at this head: 9a77a189f38c33a6bf3c3e55 (SavedCoverReveal, ColdChatReveal and CachedChatPaintFade). Pending; no passing result claimed yet.
  • The old broad run was cut short and is not excused as a base red. The focused tests replace that inconclusive run. Product sources at the earlier head passed the Release compile in run 40750105924 and the fresh-home launch (6.6 seconds, no crash); current compile status is checked separately at this head.
  • No new timer or animation loop. The existing reveal cancels loading timers and releases its callbacks.

No capture: the user explicitly waived waiting for startup pixel captures. Colours, glass and type stay as they are.

Agent session: agent session