cmux NEXT agent engine bench: WebKit modes stay WebKit, and --shots captures each engine over the window glass

Merged
TE
14d ago
+27-2

Leo: "lawrence wants to do chromium... well how could we do glass through chromium?"

Scope now: the engine bench only. This PR first added a Debug toggle (agent.chromiumGlass, off) that made the Chromium agent chat see-through. That part was dropped from the branch (force-push at 04:56Z, before e397eec โ†’ d583e5d) because 8e36a5bd9ea (lawrencecchen, "cmux pages in Chromium are see-through like their WebKit pages") landed the same fork binding (cmux_tab_set_transparent_background, API 17) for every cmux page, with no toggle. No Swift, no tunable and no default change is left here.

What it does (scripts/cmux-next/agent-engine-bench.py, +27/-2)

  • WebKit modes stay WebKit. agent.chromium is on by default since 69a51bf63be, so the bench's own and page baselines were loading the chat in Chromium. They now pin agent.chromium: false; chromium mode pins it true.
  • --shots DIR: light and dark screen captures (screencapture, one file per display) of the open chat in each mode, plus debug.window_list, restoring debug.appearance to system afterwards.
  • With --shots, the scratch Ghostty config turns the window glass on (background-opacity = 0.7, background-blur = macos-glass-regular); an empty config is an opaque window, which hides what a page does over the glass. Without --shots the config stays empty, as before.

Bench numbers (same harness, cmux-mac-mini-cua, window glass on, 10 chats; taken before the Swift part was dropped)

WebKit (shipping)Chromium (opaque)Chromium see-through
Total memory with 1 chat640 MB944 MB956 MB
Total memory with 10 chats1010 MB1157 MB1156 MB
First chat, first content3112 ms (cold outlier; 318 ms in the opaque run)70 ms100 ms
Next chats, ready (median)37 ms42 ms43 ms
Typing to frame p50 / p954 / 7 ms7.3 / 10.3 ms9.7 / 11.3 ms
Typing to paint p958 ms15 ms18 ms
Fling: dropped frames / p95 frame, 3 runs28, 15, 27 / 33โ€“40 ms2, 1, 2 / 17โ€“19 ms3, 2, 2 / 16.8 ms

See-through costs nothing measurable over opaque Chromium on these numbers.

No capture: the diff is a bench script on the fleet, with no app UI change. The private side-by-side is in the design references repo as cmux-next-chromium-glass-side-by-side.

Agent session: cosmic-gray
Agent session: Air-Blue

๐Ÿค– Generated with Claude Code