Skip to content

chore: release#19

Merged
eshork merged 1 commit into
mainfrom
release-plz-2026-05-14T04-12-42Z
May 14, 2026
Merged

chore: release#19
eshork merged 1 commit into
mainfrom
release-plz-2026-05-14T04-12-42Z

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

🤖 New release

  • libudx: 1.2.0 -> 1.3.0
  • peeroxide-dht: 1.2.0 -> 1.3.0
  • peeroxide: 1.2.0 -> 1.3.0 (✓ API compatible changes)
  • peeroxide-cli: 0.1.0 -> 0.2.0
Changelog

libudx

1.2.0 - 2026-05-01

Changed

  • UdxSocket is now a cheap-clone Arc handle (UdxSocketInner holds all state internally). All clones share the same underlying socket; the recv loop is only torn down when the last clone is dropped. UdxSocket::close(self) consuming signature is unchanged. (#12)

peeroxide-dht

1.3.0 - 2026-05-13

Added

  • WireCounters struct — provides atomic, shareable counters for tracking total bytes sent and received. Includes new() for initialization and snapshot() for retrieving current totals.
  • Io::wire field — public access to the IO layer's WireCounters.
  • Io::wire_counters() — returns a handle to the IO layer's wire byte counters.
  • DhtHandle::wire_stats() — returns a snapshot of cumulative wire bytes (sent, received) for the DHT node.
  • DhtHandle::wire_counters() — returns a handle to the node-wide WireCounters.
  • HyperDhtHandle::wire_stats() — returns a snapshot of total wire bytes processed by the DHT.
  • HyperDhtHandle::wire_counters() — returns a handle to the shared wire byte counters for the running instance.

peeroxide

1.3.0 - 2026-05-14

Other

  • peeroxide-cli 0.2.0: chat subsystem, init command, dd v2 tree protocol, progress UX (#15)

Changed

  • Bumped peeroxide-dht dependency from 1.2.0 to 1.3.0. This update adds new public wire-byte counter accessors to HyperDhtHandle and DhtHandle. See peeroxide-dht/CHANGELOG.md for the full list of new additive symbols.

peeroxide-cli

[0.2.0] - 2026-05-13

Added

  • peeroxide chat — pseudonymous end-to-end-encrypted P2P chat over the DHT. Subcommands: join, dm, inbox, whoami, profiles {list, create, delete}, friends {list, add, remove, refresh}, nexus. Public channels by name, private channels via --group <salt> or --keyfile; DMs derived from both participants' identity pubkeys plus an ECDH-augmented message key. Interactive TUI with a pinned status bar, multi-line input, slash commands, and a background inbox monitor; line mode is selected automatically when either stdio side is piped. Full reference and protocol spec: docs/src/chat/.

  • peeroxide init — config bootstrap (default mode) and man-page installation (--man-pages [PATH]). New flags: --force, --update, --public, --bootstrap <ADDR> (repeatable), --man-pages [PATH].

  • Tree-indexed dd protocol v2 shipped under wire byte 0x02. Receiver fetches the index tree breadth-first in parallel. Soft depth cap of 4 supports up to ~27 GB at the default 998-byte chunk size.

  • dd put and dd get now display a progress bar by default when stderr is a TTY (indicatif-driven). New flags:

    • --no-progress — suppress the progress bar
    • --json — emit structured start/progress/result/ack/done events as JSON Lines on stdout (schema documented in docs/src/dd/operations.md)

    dd get --json requires --output FILE; without it, flag parsing fails with a clear error (stdout would otherwise conflict with the JSON event stream).

  • dd progress display includes cumulative DHT wire bytes (sent / received) via the new peeroxide-dht 1.3.0 HyperDhtHandle::wire_stats() / wire_counters() API (additive — see peeroxide-dht/CHANGELOG.md for the full new symbol set). Shown in the bar, periodic log, and JSON events.

  • New global -v / --verbose count flag (warn / info / debug; RUST_LOG overrides).

  • New global --no-public flag that excludes the default public HyperDHT bootstrap nodes.

  • Per-mutable_put timeout of 30 seconds in the dd v2 sender. Stall watchdog kicks AIMD concurrency off the floor if no put resolves for 30 seconds.

  • peeroxide-init(1) and peeroxide-chat(1) man pages.

  • New mdBook chapters: docs/src/chat/ (overview, user-guide, interactive-tui, wire-format, protocol, reference), docs/src/init/overview.md, docs/src/concepts/dht-primitives.md (covers immutable_put/mutable_put/announce/lookup, rendezvous pattern, TTL, and 1002-byte size budget).

  • docs/ascii_art.txt banner asset embedded into peeroxide --version via clap long_version, into the crate README, and into the mdBook introduction. -V continues to print the bare semver for scripts.

  • Prebuilt peeroxide binaries distributed via the rightbracket/peeroxide Homebrew tap for macOS (universal Apple Silicon + Intel), Linux x86_64 (glibc), and Linux aarch64 (glibc). No Rust toolchain required; brew install rightbracket/peeroxide/peeroxide auto-taps and installs.

Changed

  • Renamed deaddrop command to dd (short for "Dead Drop").
  • Renamed deaddrop leave subcommand to dd put.
  • Renamed deaddrop pickup subcommand to dd get.
  • dd put defaults to v2 protocol; pass --v1 to force the legacy single-chain protocol.
  • dd get auto-dispatches between v1 (0x01) and v2 (0x02) based on the root record's first byte.
  • Bootstrap resolution: CLI --bootstrap overrides the config file's network.bootstrap (not additive). After base-list selection, --public adds defaults, an empty list auto-fills with defaults, and --no-public removes defaults.
  • The legacy per-chunk status output emitted to stderr during the initial publish/fetch phase (published chunk N/M, fetched data N/M, reassembled X bytes, etc.) is replaced by the new progress UI (bar, periodic log, or JSON events). Scripts that parsed this output should migrate to --json mode.
    Preserved: Refresh, ack ([ack] pickup #N detected), "ack sent", "done", "written to PATH", and other lifecycle messages on stderr are not affected and continue to print as before.
  • In --json mode, all structured events (including the pickup key for dd put) go to stdout (per docs/AGENTS.md convention). The pickup key is delivered as {"type":"result","pickup_key":"..."} rather than a bare stdout line. JSON consumers should parse {"type":"result"} events.
  • Consolidated peeroxide chat man pages into a single peeroxide-chat(1) covering every subcommand and group. Total man-page count is 9 (one per top-level command).
  • All man pages have refreshed long-about prose, examples, exit status, and see-also entries.
  • Rewritten docs/src/dd/ chapters covering both v1 and v2.

Fixed

  • Shared sticky Shutdown primitive across dd put. First SIGINT/SIGTERM cancels gracefully; second exits with code 130.
  • dd v2 need-list watcher now publishes only attempted-and-failed chunk ranges, not all missing positions.

Removed

  • peeroxide config init — replaced by peeroxide init.
  • The legacy --generate-man <DIR> flag — replaced by peeroxide init --man-pages [PATH].
  • The legacy --firewalled global flag — replaced by --no-public.


This PR was generated with release-plz.

@eshork eshork marked this pull request as ready for review May 14, 2026 04:14
@eshork eshork merged commit 5b11637 into main May 14, 2026
4 checks passed
@eshork eshork deleted the release-plz-2026-05-14T04-12-42Z branch May 14, 2026 04:22
@github-actions github-actions Bot mentioned this pull request May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant