feat(comments): add comment permalink route and continue-thread navigation master
Add /c/[handle=handle]/post/[rkey]/comment/[crkey] — a permalink page rendering the thread re-rooted at one comment, with a single-thread banner, "View all comments" (returns via #comment-<rkey> anchor), and "Show context" (hops to the parent comment's permalink). Changes: - fetchChildren fetches only the parent's subtree via getComments parentRkey, following response.cursor up to 4 pages so wide threads load fully; depth is derived from MAX_INLINE_DEPTH (subtreeFetchDepth) so deeper replies render a "Continue this thread" permalink anchor - #comment-<rkey> deep links mount the target's top-level row in the virtualized list (scrollToComment/scrollToRow), poll against a 2s deadline, then scroll + highlight; unresolvable targets surface a commentNotFound toast instead of no-oping - postLink/commentLink/communityLink fall back to the community DID when the handle is missing — bare names aren't [handle=handle] matcher-valid and would 404; PostLinkRef centralizes the link shape - communityIdentifier now returns handle-or-DID for URLs; new communityHandleOrName keeps display copy (e.g. !handle) readable - permalink loader 404s with couldnt_find_community on unknown slugs and derives SUBTREE_DEPTH from MAX_INLINE_DEPTH - route hygiene: [handle=handle] matcher on /c/ and /u/, i18n keys for hardcoded strings, matcher-valid test fixtures, URL-level test for getComments parentRkey omission Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>