

Ha, fair point! You’re not wrong. PeerBox uses the email paradigm because that’s how most people think about asynchronous messaging, but under the hood it’s fully P2P with no email protocol involved. And yes, deferred messages wait locally until your contact comes online, then get delivered automatically. Your Delta Chat comparison is pretty spot on actually, it’s the mirror image.

Thanks for the detailed review, really appreciate it — this is exactly the kind of feedback the project needed before a public release.
You were right on two of the three points, and I’ve just pushed fixes to Codeberg (commit 93b8985):
GPG: you nailed it.
config.pywas silently reusing the user’s personal~/.gnupgkeyring if a key was present, which is obviously wrong for an identity-isolated app. Fixed: PeerBox now uses a dedicated keyring atsystem/gpg/with--homedirenforced on every gpg call. Existing users get their key auto-migrated on nextconfig.pyrun so contacts don’t break.Dependencies:
install_pysocks()was callingpip install --break-system-packagesat runtime, which is indefensible. Removed entirely — it was actually dead code (never called) but still a trap. DocumentedPySocksin the README as a required pip dep alongside cryptography and pywebview. The broader venv/lockfile refactor is a bigger chantier, planned for phase 6.SSH keys: here I have to push back a bit —
ssh_setup.pydoes generate a dedicatedid_rsa_peerboxkey, never reusesid_rsaorid_ed25519. BUT you indirectly uncovered a real bug:request_creator.pyhad a silent fallback readingid_rsa.pub/id_ed25519.pubifid_rsa_peerbox.pubwas missing. That’s gone now too.Quill 1.3.7 → 2.0.3: fair point, on the roadmap for this weekend. Non-minified too for auditability.
Seriously, thanks for taking the time to read the code and call out what needed calling out. This is what keeps small projects honest.