#760
Feature: Expanded store-and-forward (open couriers, durable outbox, 6h public history)
Summary
Port iOS expanded store-and-forward so DMs and public history eventually deliver through crowds of strangers — not only mutual favorites currently connected.
Android has a basic StoreForwardManager; iOS substantially extended the model.
Upstream (iOS)
- https://github.com/permissionlesstech/bitchat/pull/1372 — Expand S&F: open couriers, spray-and-wait, persistent outbox, 6h public history
- https://github.com/permissionlesstech/bitchat/pull/1415 — DMs to unreachable peers use S&F instead of failing instantly
- https://github.com/permissionlesstech/bitchat/pull/1368 — Courier deposit in parallel when only route is a send round
- Bridge integration: https://github.com/permissionlesstech/bitchat/pull/1412
What it is
- MessageOutboxStore: queued private messages persist to disk (sealed); retry across app restarts
- Open couriers: strangers can carry sealed mail (quota-bounded), not only mutual favorites at send time
- Spray-and-wait: multi-carrier deposit strategy
- 6h public history persistence for peer serve + echoes UX
- No instant fail when peer is neither mesh-reachable nor Nostr-mutual — hand to router/outbox/courier/bridge
Why Android needs it
Delivery parity is fundamental; without it Android DMs still die when the recipient briefly leaves range, while iOS queues them.
Acceptance criteria
- Durable encrypted outbox survives process death
- Open-courier deposit/pickup wire-compatible with iOS
- Unreachable DM path never marks failed without enqueue
- Public history retention window parity (~6h) for sync/echoes
- Quotas, expiry, panic-wipe behavior
Priority
High — core messaging reliability; prerequisite for bridge/courier excellence.
Activity
0No activity yet.