0.1.3
Previously listDescriptions mapped every CGWindowList descriptor through the throwing Description initializer, so a single window missing a required key threw the entire call and discarded the whole list. Parse each descriptor independently and skip (with a debug log) any that fail, so one odd system window no longer wipes the results. describe() and all other callers benefit; the throwing signature is unchanged. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>