@huan huan released this Jun 21, 2018 · 796 commits to master since this release

This release is a BETA release which had been improved with lots of huge refactoring since v0.14.

With v0.16, we can use the branding new Puppet System to connect Wechaty API to any kinds of Puppets, for example:

  1. Mocking - PuppetMock
  2. Web API via HTTP - PuppetWechat4U
  3. Web API via Browser - PuppetPuppeteer (our classic PuppetWeb)
  4. Maybe a Official Account Puppet? #1016

If you are using Wechaty in a production environment, It is recormmand to skip this version and wait to the next version of 0.18 because this version is still in testing stage and will be continue developing as v0.19.

However, if you want to try the new Puppet like the PuppetPadchat which is powered by the Wechat Pad Protocol, you can upgrade to this version and get the following benifits from it:

  1. Be able to login with the newly registered Wechat Account. (#872)
  2. Get wechat id for contacts. (#133)
  3. Get consistent room id for rooms across login session. (#90)
  4. ... To be discovered by you ...

Learn more about how to use the PuppetPadchat from Wechaty v0.15 Alpha Testing: Win32/iPad/Android/iOS/API Puppets Support are coming! #1296




BREAKING NEWS: Wechaty logo color was changed from green to blue!

There will be a migration guide from v0.14 to v0.16 will be published on our blog later.


1.1 Class Removal

  • BREAKING CHANGE: v0.16 will remove MediaMessage class #1164
  • BREAKING CHANGES v0.16: FriendRequest class will be replaced with Friendship #1312
  • BREAKING CHANGE v0.16 Contact, FriendRequest, Message, and Room classes will not be able to instantiate directly #1364

1.2. Sync to Async

  • BREAKING CHANGE: v0.16 Room.topic() change from Sycn to Async #1295
  • BREAKING CHANGE: v0.16 Room.alias(contact) change from Sycn to Async #1293
  • BREAKING CHANGE: v0.16 Room.memberList() change from Sycn to Async #1290
  • BREAKING CHANGE: v0.16 Room.has(contact) change from Sycn to Async #1289
  • BREAKING CHANGE: v0.16 Message.mention() change from sync to async #1259
  • BREAKING CHANGES: v0.16 Room.member() from sync to async #1258

1.3. Argument / Return Value

  • BREAKING CHANGE v0.16 room.add return Promise<void> instead of return Promise<boolean> #1362
  • BREAKING CHANGE: v0.16 scan event args will be different! #1262
  • BREAKING CHANGE: first arg of room-leave event licener changed from Contact to Contact[] #723
  • BREAKING CHANGE: v0.16 on('friend`) arguments changed! #1196

1.4. Deprecated

  • BREAKING CHANGE v0.16 Wechaty.self() eprecated, use Wechaty.userSelf() instead #1369
  • BREAKING CHANGE v0.16 Contact.personal() and Contact.official() deprecated, use Contact.type() instead #1366
  • BREAKING CHANGE: v0.16 will replace Message.content() with Message.text() #1163

2. New Features

  • feat: Add for await (const contact of room) {} support by ES6 iterators override #1198
  • [todo] allow Wechaty to be multi-instance #518
  • [New Puppet] Plan to support WECHATY_HEAD=WECHAT4U #69
  • TravisCI Conditional Deployment #1211
  • Puppet padchat #1245 (lijiarui)
  • Multi-Instance Support #1159 (zixia)

3. Bug Fixes

  • Update the peerDependencies of rx-queue: rxjs@6 from rxjs@5 #1205
  • How to avoid the memory leak #981
  • Should throw Exception when there have API Error. #683

4. Enhancements

  • Prevent the Floating Promise in the Async/Await Code #1346
  • Upgrade Docker Base Image from Ubuntu 17.10 to 18.04 #1239
  • Continious Deploy to NPM with @next tag when the MINOR version number is odd(in developing branch) #1158
  • Should throw Exception when there have API Error. #683
  • Decouple: Make Contact, Room, Message, and FriendRequest class Abstract. #1160 (zixia)
  • Update to node 10 in .travis.yml #1231 (zixia)

Learn more between version at:

Assets 2