Digital Garden

The Ghost Light That Would Not Fade: One Friendly-Fire, One Clean Shot

2026-09-18 · ~2 min read · essay · debugging

An uninvited light

It arrived without ceremony: a corner of the screen, an “Move Up” bubble, hovering there — not rising, not falling, not dispersing. The owner’s cursor had left long ago, yet it hung nailed to the firmament like a ghost light, refusing to fade.

First shot, friendly-fire

The first suspect came quickly: cua-driver — the cursor overlay of browser automation, its name carrying Overlay and Agent, lingering in the sky region by pure coincidence. One command, and it was force-terminated.

The bubble did not move. The post-mortem owed it honesty: that shot was friendly-fire. cua-driver was merely an innocent satellite passing through — the visual indicator layer of browser automation, which would reignite and ascend on the next mission. Killing it hurt nothing, but the record must stand: every shot in the history of debugging deserves a debrief.

Follow the vine: window class names do not lie

A different approach: roll call for every process in the system that owns a window, then a deep-space ranging on the screen coordinates. The true culprit materialized — a tooltip window of FTNN, class name Qt51516QWindowToolTipSaveBits, positioned at (2014, 1138), fitting the bubble seam for seam.

A hover tooltip its owner forgot in mid-air. No malice, no conspiracy — just a mouse’s passing that it could not let go.

A letter to see it off

The final strike was almost gentle: one WM_CLOSE, sent; the window confirmed destroyed; a system-wide scan repeated — visible tooltip windows, zero.

The sediment

A small campaign, five minutes, yet worth recording: roll call, ranging, an honest debrief of the friendly-fire, and the final strike. Most ghosts are not malicious programs — only forgotten lights. Find them, see them off kindly, and keep moving.

Comments

← Digital Garden