8000 Release v9.0 · snarfed/granary · GitHub
[go: up one dir, main page]

Skip to content

v9.0

Latest
Compare
Choose a tag to compare
@snarfed snarfed released this 14 Sep 02:51
· 10 commits to main since this release
c5f0ce1

Breaking changes:

  • mastodon: Switch AS1 actor and object ids from tag: URIs to the real AS2 ids.

Non-breaking changes:

  • as1:
    • prefix_urls: handle string values.
    • is_public: return False for public CRUD activities on non-public objects.
    • is_dm/recipient_if_dm: allow DMs with recipient in cc instead of to; evidently NeoDB sends DMs like this.
    • targets: add quoted posts, ie attachments with objectType: note.
    • Add new quoted_posts, mentions functions.
  • as2:
    • Add support for pinned posts via the featured collection.
    • Handle replies as a collection in both from_as1 and to_as1.
    • from_as1:
      • Add rel="tag" to hashtag HTML links and class="h-card" to mentions in content to prevent Mastodon from generating link previews for them.
    • to_as1:
      • Handle bare string attachment values.
      • Handle multiply-valued type.
    • is_server_actor: return False for id URLs with query parameters.
    • Add new URL_RE constant.
  • bluesky:
    • Add pds_url, **requests_kwargs kwargs to Bluesky constructor.
    • Convert followersCount/followsCount in app.bsky.actor.defs#profileViewDetailed to the non-standard followers and following AS1 collections (borrowed from ActivityPub).
    • Convert pinned posts (just one per actor) between Bluesky's pinnedPost field and the fediverse's featured collection.
    • Switch getFollows/getFollowers calls from PDS to AppView. (These requests to Bluesky PDSes were timing out connection from Google Cloud IPs as of 2025-05-08.)
    • from_as1:
    • to_as1:
      • Bug fix, handle facets with bad indices (in the middle of Unicode code points) interacting with HTML characters.
      • Better error handling when embed record $type is invalid.
    • web_url_to_at_uri and BSKY_APP_URL_RE: tighten validation, check authority and rkey for allowed characters.
  • mastodon:
    • Convert followers_count/following_count in Mastodon accounts to the non-standard followers and following AS1 collections (borrowed from ActivityPub).
    • Add **requests_kwargs to Bluesky constructor.
  • microformats2:
    • from_as1: for quote posts (note attachments), populate their id into url, not uid (bridgy-fed#2045).
    • to_as1:
      • Bug fix: handle u-bookmark-of h-cite (#918).
      • Only populate u-url into url if it's a valid URL.
  • nostr:
    • Add new nip05_to_npub function to resolve NIP-05 identifiers.
    • Add new bech32_decode, bech32_encode, bech32_prefix_for, pubkey_from_privkey, uri_for functions.
    • Add new verify function to verify event signatures.
    • Add NIP-24 support for additional tags and fields in profiles.
    • Add NIP-92/94 support for imeta tags for images, video, audio.
    • from_as1:
      • Add optional new privkey kwarg to sign output events and populate pubkey with.
      • Add optional new from_protocol kwarg for setting NIP-48 proxy tags in output events.
      • When converting created_at to published, include UTC timezone.
      • When converting actors to kind 0 Nostr events, remove unset fields from content instead of setting them to null, and only use _ NIP-05 username with full domains.
      • Don't escape Unicode characters (background).
      • Convert HTML content to Markdown plain text.
    • Nostr:
      • Add new user_url method.
      • Add optional new privkey kwarg to constructor to sign events with; remove pubkey kwarg.
      • create now signs activities before sending to relays. Now requires the privkey member attribute to be set.
      • query:
        • Verify signatures; discard events with invalid signatures.
        • Add NIP-42 support; reply to AUTH challenges with signatures from the stored privkey.
  • rss:
    • to_as1: handle UNIX timestamp dcterms:modified values without overflowing.
0