2.002000   2026-07-03

  - Split the project into Net-Nostr-Core, Net-Nostr-Client, Net-Nostr-Relay,
    and Net-Nostr shim distributions
  - Move protocol and NIP tooling into the Net-Nostr-Core distribution
  - Move Net::Nostr::Client into Net-Nostr-Client and Net::Nostr::Relay plus
    Net::Nostr::RelayStore into Net-Nostr-Relay
  - Keep Net::Nostr as a compatibility shim that installs Core, Client, and
    Relay
  - Start Net-Nostr-Core, Net-Nostr-Client, and Net-Nostr-Relay at version
    1.001000 while keeping the Net-Nostr shim at version 2.002000
  - Make AnyEvent::HTTP optional for Net-Nostr-Core and lazy-load it only for
    Net::Nostr::Identifier network lookup and verification
  - Keep AnyEvent::HTTP as a hard dependency of the Net-Nostr shim distribution
    for the full historical install
  - Leave intra-Net::Nostr distribution dependencies unversioned for
    split-release indexing
  - Remove unrecommended NIPs 15, 28, 72, and 90 from the full install surface
    by dropping Net::Nostr::Marketplace, Net::Nostr::Channel,
    Net::Nostr::Community, and Net::Nostr::DVM from Net-Nostr-Core
  - Use Makefile.PL as the single dependency source of truth

2.001000   2026-07-02

  - Update supported NIP behavior to nostr-protocol/nips commit 8f8444d0
  - Add NIP-29 naddr group identifiers, LiveKit metadata, and participants
  - Add NIP-43 role definitions and NIP-86 role management validation
  - Add NIP-44 extended length prefixes and NIP-59 ephemeral gift wraps
  - Add NIP-78 kind 78 app data and NIP-89 latest/next manifest tags
  - Enforce NIP-01 single relay endpoint paths and NIP-70 protected repost rules
  - Update NIP-17 file thumbhash and NIP-34 fork/state metadata handling
  - Tighten argument validation in updated NIP-29, NIP-34, and NIP-43 builders
  - Accept either a flat hash or a single hash reference for constructors and
    named-argument builder/helper APIs
  - Normalize supported named-argument APIs through one shared internal helper

1.003001   2026-06-27

  - Clarify UTF-8 byte/string boundaries for event serialization and message parsing
  - Reject decoded wide-character JSON strings in Net::Nostr::Message->parse
  - Add byte-level NIP-01 coverage for non-ASCII event content and tags
  - Run nested NIP conformance tests under make test

1.003000   2026-04-15

  - Expose TLS client options in Net::Nostr::Client for secure relay connections
  - Declare IO::Socket::SSL as a test prerequisite for TLS coverage

1.002000   2026-04-15

  - Add native TLS listener support to Net::Nostr::Relay for wss:// clients

1.001000   2026-04-15

  - Reject malformed NIP-77 negentropy hex and truncated range payloads
  - Enforce Negentropy frame_size_limit on encoded protocol frames
  - Tighten NIP-17 DirectMessage validation for recipients, file hashes,
    encryption algorithm, and relay URIs
  - Add multi-letter tag filter support to Net::Nostr::Filter
  - Preserve NIP-11 extension fields in Net::Nostr::RelayInfo
  - Ensure relay HTTP and NIP-11 responses are fully written
  - Expand relay coverage for immediate post-connect events and write-loop behavior
  - Add nostr:// clone URL support to Net::Nostr::Git (NIP-34)
  - Defer relay message processing to prevent re-entrant WebSocket callbacks

1.000002   2026-04-10

  - Catch dying user callbacks in Client to prevent breaking the connection

1.000001   2026-04-09

  - Fix dependency declarations to use top-level CPAN distributions only

1.000000   2026-04-09

  First stable release. Perl implementation of the Nostr protocol with
  both client and relay functionality.

  Supported NIPs: 01, 02, 03, 05, 06, 09, 10, 11, 13, 15, 17, 18,
  19, 21, 22, 23, 24, 25, 27, 28, 29, 32, 34, 35, 36, 40, 42, 43,
  44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61,
  65, 66, 70, 72, 73, 77, 78, 86, 87, 89, 90, 92, 94, 98, 99, B7.

0.002000   2026-04-01

  - Add save_privkey() and save_pubkey() methods to Net::Nostr::Key
  - Improved documentation

0.001000   2026-04-01

  - First release
