Implement rich text facet support for displaying and creating posts and
comments with clickable links. Links in post and comment bodies are now
tappable and open in an external browser.
Changes:
- Add facet models (ByteSlice, RichTextFacet, LinkFacetFeature) with
proper UTF-8 byte indexing for cross-platform compatibility
- Add FacetDetector utility for detecting URLs in text and generating
facets with correct byte indices (handles emoji and multi-byte chars)
- Add RichTextRenderer widget that converts facets to tappable TextSpans
- Update Post and Comment models to parse facets from record['facets']
per backend API update
- Update PostCard, DetailedPostView, and CommentCard to render rich text
- Update CreatePostScreen and ReplyScreen to detect links when composing
- Update CovesApiService and CommentService to send facets to backend
- Add comprehensive test coverage for facet models, detector, and renderer
- Fix error handling in CommentCard (show snackbar on vote failure)
- Fix sign-in navigation in CommentCard
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>