Fix link deduplication in ArtifactsPanel — three root causes
...
1. normalizeUrlForDedup returned only pathname, so https://a.com/foo
and https://b.com/foo shared key /foo. Now uses host+pathname
(with www stripped).
2. Trailing punctuation was stripped for display but not before dedup,
so https://example.com/path. and https://example.com/path got
different keys /path. vs /path. Now stripTrailingPunctuation() runs
before normalizeUrlForDedup().
3. Fragile before==='(' skip logic for markdown hrefs replaced with
precise protectedRanges tracking — bare URLs whose match falls inside
a recorded markdown href range are skipped regardless of spacing.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
on 24 May