Add incoming offer discovery via push notification
When Node A offers to replicate Node B's data, Node A now resolves
Node B's org.p2pds.peer record to find their p2pds endpoint URL and
POSTs a notification. Node B verifies the offer exists in Node A's
repo (anti-spoofing), stores it in an incoming_offers table, and
shows it in the dashboard with Accept/Reject buttons. Accepting
creates a reciprocal offer which triggers mutual agreement detection.
- Add PUBLIC_URL config + endpoint field to peer record
- Add endpoint to PeerInfo type in peer-discovery
- Add incoming_offers table + CRUD methods in sync-storage
- Add push notification in offerDid(), acceptOffer/rejectOffer in
ReplicationManager
- Add notifyOffer (unauthenticated), acceptOffer, rejectOffer XRPC
endpoints with rate limiting
- Add incoming offers UI section in dashboard