GitHub returns `mergeable: null` for merged/closed PRs. The SCM plugin
was misinterpreting this as unknown/problematic status, leading to
false "Merge conflicts" warnings in the dashboard.
Fixed in two layers:
1. SCM plugin: Check PR state first in getMergeability(). Return clean
result immediately for merged/closed PRs without querying mergeable.
2. Dashboard: Skip merge conflict display for non-open PRs in
SessionDetail component.
SessionCard already had protection via early return in getAlerts().
Closes: bug described in task description
Tests: Added tests for merged/closed PR cases, all 54 tests passing
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>