fix(agent-pane): hand saved CEF covers off on the painted frame
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: truefor the synthetic Chromium fixture, so another suite's process-wide page-root registration cannot reject it. - The preceding head's focused fleet job
f5fd6580ec7f569658a95b05passed SavedCoverReveal (both engines), ColdChatReveal, CachedChatPaintFade and three older failing test names. The only failure wasSidebarFooterAlignmentTests/theAccountAndSearchShareOneLineAboveTheBottomMargin, which fails with the same six geometry errors on base14b20f800934bc61c9b162e76df164693b795fe3, fleet jobed8b6c7b61e390be2d7bb943. - 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