magic-wormhole/NEWS.md
2016-01-12 15:33:33 -08:00

4.1 KiB

User-visible changes in "magic-wormhole":

Release 0.6.2 (12-Jan-2015)

  • the server can now "blur" usage information: this turns off HTTP logging, and rounds timestamps to coarse intervals
  • wormhole server usage now shows Transit usage too, not just Rendezvous

Release 0.6.1 (03-Dec-2015)

  • wormhole can now send/receive entire directories. They are zipped before transport.
  • Python 3 is now supported for async (Twisted) library use, requiring at least Twisted-15.5.0.
  • A bug was fixed which prevented py3-based clients from using the relay transit server (not used if the two sides can reach each other directly).
  • The --output-file= argument was finally implemented, which allows the receiver to override the filename that it writes. This may help scripted usage.
  • Support for Python-2.6 was removed, since the recent Twisted-15.5.0 removed it too. It might still work, but is no longer automatically tested.
  • The transit relay now implements proper flow control (Producer/Consumer), so it won't buffer the entire file when the sender can push data faster than the receiver can accept it. The sender should now throttle down to the receiver's maximum rate.

Release 0.6.0 (23-Nov-2015)

  • Add key-confirmation message so "wormhole send" doesn't hang when the receiver mistypes the code.
  • Fix wormhole send --text - to read the text message from stdin. wormhole receive >outfile works, but currently appends an extra newline, which may be removed in a future release.
  • Arrange for 0.4.0 senders to print an error message when connecting to a current (0.5.0) server, instead of an ugly stack trace. Unfortunately 0.4.0 receivers still display the traceback, since they don't check the welcome message before using a missing API. 0.5.0 and 0.6.0 will do better.
  • Improve channel deallocation upon error.
  • Inform the server of our "mood" when the connection closes, so it can track the rate of successful/unsuccessful transfers. The server DB now stores a summary of each transfer (waiting time and reported outcome).
  • Rename (and deprecate) one server API (the non-EventSource form of "get"), leaving it in place until after the next release. 0.5.0 clients should interoperate with both the 0.6.0 server and 0.6.0 clients, but eventually they'll stop working.

Release 0.5.0 (07-Oct-2015)

  • Change the CLI to merge send-file with send-text, and receive-file with receive-text. Add confirmation before accepting a file.
  • Change the remote server API significantly, breaking compatibility with 0.4.0 peers. Fix EventSource to match W3C spec and real browser behavior.
  • Add py3 (3.3, 3.4, 3.5) compatibility for blocking calls (but not Twisted).
  • internals
  • Introduce Channel and ChannelManager to factor out the HTTP/EventSource technology in use (making room for WebSocket or Tor in the future).
  • Change app-visible API to allow multiple message phases.
  • Change most API arguments from bytes to unicode strings (appid, URLs, wormhole code, derive_key purpose string, message phase). Derived keys are bytes, of course.
  • Add proper unit tests.

Release 0.4.0 (22-Sep-2015)

This changes the protocol (to a symmetric form), breaking compatibility with 0.3.0 peers. Now both blocking-style and Twisted-style use a symmetric protocol, and the two sides do not need to figure out (ahead of time) which one goes first. The internal layout was rearranged, so applications that import wormhole must be updated.

Release 0.3.0 (24-Jun-2015)

Add preliminary Twisted support, only for symmetric endpoints (no initator/receiver distinction). Lacks code-entry tab-completion. May still leave timers lingering. Add test suite (only for Twisted, so far).

Use a sqlite database for Relay server state, to survive reboots with less data loss. Add "--advertise-version=" to "wormhole relay start", to override the version we recommend to clients.

Release 0.2.0 (10-Apr-2015)

Initial release: supports blocking/synchronous asymmetric endpoints (Initiator on one side, Receiver on the other). Codes can be generated by Initiator, or created externally and passed into both (as long as they start with digits: NNN-anything).