Problem
Agent completion detection treats the selected worktree's focused pane as viewed even when the Prowl window is inactive, minimized, or hidden. resolvedSeen receives isSelected() && isFocusedSurface(surfaceID) instead of isViewedSurface(surfaceID), so completion becomes read Idle rather than unread Done and disappears from Island attention.
recordActiveSurface also marks agent state as read without checking whether the surface is actually viewed.
Expected behavior
Do not automatically mark agent completion as read unless isViewedSurface(surfaceID) is true. Explicit user actions to mark items as read should remain supported.
Verification
Cover selected-but-unviewed panes, genuinely viewed panes, background panes, and focus bookkeeping that runs while the window is not viewed.
Problem
Agent completion detection treats the selected worktree's focused pane as viewed even when the Prowl window is inactive, minimized, or hidden.
resolvedSeenreceivesisSelected() && isFocusedSurface(surfaceID)instead ofisViewedSurface(surfaceID), so completion becomes read Idle rather than unread Done and disappears from Island attention.recordActiveSurfacealso marks agent state as read without checking whether the surface is actually viewed.Expected behavior
Do not automatically mark agent completion as read unless
isViewedSurface(surfaceID)is true. Explicit user actions to mark items as read should remain supported.Verification
Cover selected-but-unviewed panes, genuinely viewed panes, background panes, and focus bookkeeping that runs while the window is not viewed.