nirc-rs/NOTICES.md

108 lines
4.7 KiB
Markdown

# NOTICES — nirc-rs
This file collects project-level notices that affect the legal or operational
status of nirc-rs features. It is intentionally separate from CHANGES.md
(which is a release-engineering log) so that legal/compliance readers can
find these notes quickly.
---
## BitChat protocol module — withdrawn in 0.10.2
**Status:** Removed.
**Affected versions:** All releases up to and including 0.10.1 contained a
`src/protocols/bitchat.rs` module. It was removed in 0.10.2.
**Date of removal:** 2026-07.
### What was removed
- `src/protocols/bitchat.rs` — the entire protocol backend (libp2p-based
P2P chat with mDNS discovery, gossipsub, noise handshake).
- `ProtocolType::BitChat` enum variant and all of its match arms in
`tag()`, `label()`, `badge()`, `naim_color()`, dispatcher routing,
command parsing, TUI color tables, history-tag mapping, log sanitiser,
and the F1 menubar "Connect → BitChat…" entry.
- `Command::BitChatPeers`, `BitChatDm`, `BitChatSendFile` variants and
their `/bitchat …` parser arms.
- `ProtocolCommand::BitChat(BitChatCommand)` dispatcher variant.
- The `connect_bitchat()` method on `Dispatcher`.
- The `libp2p` dependency in `Cargo.toml`. libp2p was only consumed by
`bitchat.rs`; no other module imports it. Dropping it significantly
reduces the dependency tree and compile time. The Noise primitive in
`src/engine/crypto.rs` uses `x25519-dalek` + `aes-gcm` directly (not
libp2p), so ADC's encrypted client-client connections still work.
### Why it was removed
The BitChat project — Jack Dorsey's recently-announced P2P messaging
protocol — is the subject of active litigation in the Indian courts. The
legal status of the protocol specification, the reference implementation,
and downstream reimplementations such as the one previously shipped in
nirc-rs is currently unclear. Specifically:
- Court filings have not yet established whether the BitChat protocol
itself is encumbered by intellectual-property claims, or whether only
the reference client is affected.
- There is live ambiguity about whether shipping a third-party
implementation of the protocol exposes downstream distributors to
secondary liability.
- The reference implementation's license terms have changed during the
dispute, and it is not yet clear which license applies to derivative
works that were created before the change.
Pending clarity on these points, we have removed the BitChat module from
nirc-rs entirely. The risk of shipping an encumbered protocol backend
outweighs the benefit of offering P2P chat that users can obtain from
other sources in the meantime.
### What this means for users
- **Existing configs:** Any `[[servers]]` entry in `~/.nirc/config.toml`
with `protocol = "bitchat"` will be silently ignored at load time.
You do not need to edit your config file, but you may remove the
entries to clean it up.
- **Existing history files:** Per-tab scrollback files in
`~/.nirc/history/` that were tagged `P2P:<name>` (the BitChat tab-key
prefix) will fail to match any known protocol on load and will be
silently assigned to the Status tab. The files themselves are not
deleted; you can read them with a text editor if you need to recover
the content.
- **Existing tabs:** If you were connected to a BitChat network when you
last exited nirc-rs 0.10.1 or earlier, the tab will not reconnect on
startup. It will appear as an inert entry in the winlist until you
`/close` it.
- **No data loss:** Your IRC / Matrix / ADC / Discord / Stout / Spacebar
/ Nerimity history, configs, and credentials are unaffected.
### Re-evaluation criteria
We will re-evaluate restoring the BitChat module when **all** of the
following are true:
1. The India courts case has reached a final judgement (not an interim
order), OR the parties have publicly settled and the settlement terms
are clear about downstream-implementation rights.
2. The BitChat reference implementation's license is unambiguous and
permits third-party reimplementations.
3. There is at least one independent legal opinion (not from a party to
the litigation) concluding that shipping a clean-room reimplementation
of the protocol is safe.
Until then, the module will remain withdrawn. If you want P2P chat in
nirc-rs in the meantime, the ADC protocol's client-client connections
offer a similar feature set (direct file transfer, direct messages) over
a hub-and-spoke topology rather than full mesh P2P.
### Acknowledgement
We acknowledge the work of the original BitChat team and the broader P2P
messaging community. The decision to withdraw the module is purely a
legal-risk mitigation, not a commentary on the technical merits of the
protocol or the people who built it.
---
## Future notices
New entries will be appended below this line as needed.