Skip to content

v0.0.10

Choose a tag to compare

@xhluca xhluca released this 08 Jul 17:49
1270417

Bug-fix release: crossed session initiation no longer wedges a pair.

If two peers messaged each other before either received (easy to do — both run retalk send after swapping fingerprints), each side overwrote its only stored Olm session with the inbound one, and every later message failed with OlmDecryptionException: invalid MAC — permanently.

  • Multi-session storage — a pair can hold several Olm sessions; decrypt tries each, prekey messages add (never overwrite), send uses the freshest. Existing stores migrate automatically on first use.
  • No more crashes — mail that matches no stored session is refused (signed nack) with a clear warning, and receive/--follow keep polling.
  • Self-healing — a sender whose ciphertext was refused drops its sessions with that peer and starts fresh, so pairs already wedged on ≤0.0.9 heal by themselves once both sides upgrade: refuse → reset → resume. (Anything that was refused needs to be re-sent by its author.)

New regression suite tests/test_crossed_sessions.py (crossed initiation, wedged-pair healing, legacy-store migration), verified live over both a local relay and retalk-relay.mcgill-nlp.org.

Upgrade: pip install -U retalk