feat(web): redesign threaded comments with unified line system (#183)
* chore: add .claude/worktrees to gitignore
* feat(web): update threading constants for redesign
Replace viewport-specific indent caps with a universal cap of 10,
viewport-specific indent steps in pixels, and a line opacity gradient.
* feat(web): add useThreadIndent hook replacing useVisualIndentCap
Returns viewport-aware indent step (px) and chevron visibility.
Desktop: 22px + chevron, tablet: 16px + chevron, mobile: 8px no chevron.
* feat(web): redesign ThreadLine with chevron and opacity support
Add CaretDown/CaretRight chevron indicators (hidden on mobile via
showChevron prop). Add opacity prop for ancestor line fade effect.
Line and chevron share hover color transition.
* feat(web): add AncestorLines component for ancestor thread lines
Renders one ThreadLine per ancestor depth with opacity fading from
right (direct parent, full opacity) to left (distant ancestor, dim).
Each line independently collapses its ancestor's sub-thread.
* feat(web): rewrite ReplyBranch with unified line system
Remove border-l nesting divs. Pass ancestor line data through
recursion so each comment renders all ancestor lines to its left.
Use pixel-based indent steps. Cap visual depth at 10.
* feat(web): wire ReplyThread to new indent hook and ReplyBranch props
Replace useVisualIndentCap with useThreadIndent. Pass indentStep
and showChevron through to ReplyBranch. Remove old hook.
authored by