Matrix to Discord voice bridge. https://matrix.to/#/%23nether-voicebridge:nether.im
  • Rust 99.7%
  • Shell 0.3%
Find a file
Robocub 4b5ee68db7 Path 3: distinguish key delivery from stale-device unreachable in logs
Live testing surfaced a misleading log: a healthy partial send (key delivered
to a recipient's live device, their stale/offline sessions skipped for lack of
one-time keys) printed "some recipient devices unreachable — will retry" and
never logged success, reading like a failure.

KeyTransport::send_key now returns KeySendOutcome { delivered, failed } instead
of just the failure list, so the loop can tell three cases apart:
- all targeted devices keyed        → INFO "ghost media key sent"
- delivered > 0, some unreachable    → INFO counts (stale/offline sessions are
  expected and benign); the per-device id list drops to DEBUG
- delivered == 0                     → WARN "reached NO recipient devices" — the
  actual alarm (e.g. the live device is out of one-time keys)

Also documents the behavior in CLAUDE.md (Path 3 implemented + live-verified
2026-06-16; the stale-device "unreachable" line is expected). Mock tests updated
for the new return type. build + clippy clean; 59 tests green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 02:04:12 -04:00
crates Path 3: distinguish key delivery from stale-device unreachable in logs 2026-06-16 02:04:12 -04:00
docs Encrypted-room voice (publish): Path 2 ghost E2EE + multi-speaker robustness 2026-06-15 23:58:06 -04:00
scripts Phase 5: bridge Discord audio into Matrix (one-way, single identity) 2026-06-13 23:59:22 -04:00
.gitignore Phase 5: bridge Discord audio into Matrix (one-way, single identity) 2026-06-13 23:59:22 -04:00
appservice-registration.yaml Encrypted-room voice (publish): Path 2 ghost E2EE + multi-speaker robustness 2026-06-15 23:58:06 -04:00
Cargo.lock Path 3: per-ghost Olm-encrypted media-key transport (true E2EE) 2026-06-16 01:38:41 -04:00
Cargo.toml Path 3: per-ghost Olm-encrypted media-key transport (true E2EE) 2026-06-16 01:38:41 -04:00
CLAUDE.md Path 3: distinguish key delivery from stale-device unreachable in logs 2026-06-16 02:04:12 -04:00
config.example.toml Path 3: per-ghost Olm-encrypted media-key transport (true E2EE) 2026-06-16 01:38:41 -04:00