feat: format issue repo as handle/name with caching
Issue list now displays repo as "dunkirk.sh/thistle" instead of
"at://did:plc:.../sh.tangled.repo/rkey" for better readability.
Uses a cache to avoid repeated API calls for the same repo, making
the command fast even with many issues from the same repository.
Implementation:
- Add get_repo_by_rkey() to fetch repo record by DID and rkey
- Add resolve_did_to_handle() to convert DID to handle
- Cache repo AT-URI to formatted name mappings
- Parse AT-URI to extract DID and rkey, then resolve to handle/name
💖 Generated with Crush
Assisted-by: Claude Sonnet 4.5 via Crush <crush@charm.land>