Wechaty Versions Save

Conversational RPA SDK for Chatbot Makers. Join our Discord: https://discord.gg/7q8NBZbQzt

v0.56

3 years ago

Wechaty 0.56

Release Announcement Blog: https://wechaty.js.org/2021/01/25/wechaty-0.56-released/

v0.56 (2021-01-25)

Full Changelog

Implemented enhancements:

  • Switch from wechaty-puppet-hostie to wechaty-puppet-service #2122
  • Add wechaty-puppet-padlocal to our puppet config #2102
  • Use message.talker\(\) to replace message.from\(\) #2094
  • Create a looseInstanceOfClass to check FileBox and Puppet instances #2090
  • Issue with batch operation on room loading process #2068
  • Support more properties on contact #2036
  • Refactoring Multi-instance Wechaty Design: Try to remove the Accessory class and related codes #2027
  • Use Typed-Emitter in Wechaty #2014
  • Support WECHATY_HOSTIE_PORT environment variable #1984
  • Wechaty v0.23 PadPro Testing, an enhanced pad puppet implementation! #1668
  • Using wechaty to start a wechatOA account #1016

Fixed bugs:

  • FileBox instance type checking problem #2035
  • Wechaty.off() not work: can not remove listeners. #2019
  • friendship.contact() will load Contact only, contact.ready() is wanted. #1954

Closed issues:

  • 不能登录,也没显示二维码就直接退出 #2099
  • Can't login after scan the qrcode #2092
  • 网络不好程序自动重启后推送异常 #2088
  • Message.forward() does not support returning a message #2073
  • bot.Friendship.add() 总是报错 #2060
  • 在使用FileBox 发送视频时候出现问题 #2059
  • The AWS Access Key Id you provided does not exist in our records. #2058
  • When setting up hostie token gateway, Account was locked after 5 getContactInfo call within a second. #2040
  • Support phone related operations #2037
  • BREAKING CHANGES: remove hotImport support from wechaty #1997
  • ERR GRPC_GATEWAY GRPC SERVER ERROR #1996
  • 微信安装 #1990
  • Cannot read property 'QQ' of undefined #1982
  • Need upgrade [email protected] version for wechaty #1980
  • The qrcode all the time timeout #1977
  • Upgrade [email protected] for fix the bug of friendship.accpet() #1966
  • 23:42:53 SILL GrpcGateway callback type:【invalid-token】 #1959
  • 准备支持企业微信群吗 #1958
  • node-pre-gyp WARN #1953
  • How to filter official account numbers #1951
  • Update wechaty-puppet-hostie version for wechaty #1948
  • Is that you? #1942
  • ipad WeChat login will automatically log out, The returned QR code is invalid, you cannot log in again, you must restart #1940
  • New version release notes for wechaty 0.38 #1937
  • Can the receive the recall " room-leave". #1745
  • Refactor message.ts file to fit the requirement in CodeClimate #1663
  • Want to get information about sent-out message #1501

Merged pull requests:

v0.38

4 years ago

v0.38 (2020-04-08)

Full Changelog

Implemented enhancements:

  • BREAKING CHANGE: Remove MessageUserQueryFilter #1929
  • Simplify the Accessory class logic #1924
  • Update Docker Base Image form Ubuntu:18 to Ubuntu:19 #1920
  • wechaty dependency modules deep cleaning #1917
  • FileBox version incompatible across wechaty wechaty-puppet and wechaty-puppet-x #1914
  • Publish Wechaty Document Site to https://wechaty.js.org #1912
  • Support Encode & Decode QR Code functions from [email protected] #1907
  • Design an new Image class for receive images with different sizes. #1871
  • Integrate Wechat with Matrix with the power of Wechaty #1737

Fixed bugs:

  • Can not create Image class. #1922

Closed issues:

  • 微信退出登录后,重新登录不了ipad #1839
  • 基于padpro协议不能发送微信小程序 #1837

Merged pull requests:

v0.30

4 years ago

v0.30 (2020-02-08)

Full Changelog

Implemented enhancements:

  • Support room.sayhi ${contact} ${num++} #1899
  • Support new event named "message" on Room #1897
  • Support search new friends by phone number or user name. #1892
  • {Room,Contact}.qrcode() should return QR Code Value instead of Image #1889
  • Implmented UrlLink.create(url) with Open Graph support #1887
  • 主动撤回消息 #1885
  • Implement Label in Wechaty #1856
  • Would like to have the timestamp on the room/friendship events #1829
  • Would like to have receiver, serialize and deserialize functions on RoomInvitation #1823
  • Wechaty v0.26 iosBird Testing, an iOS hook puppet implementation! #1775
  • Missing example code #1756
  • BREAKING CHANGE v0.25 Room.say(text: string, mention: Contact[]) deprecated #1730
  • New Puppet: Ioscat (iPhone Wechat App Hook) #1528

Fixed bugs:

  • bot.logonoff()报错【static puppet not found for Wechaty】 #1878
  • JSDoc publishing problem: missed the Room class #1872
  • Wechaty can not get room info when the bot has been removed from one room. #1834
  • bot.Contact.find() error message misleading #1812
  • 机器人会隔一段时间自动退出 #1810

Closed issues:

  • Use docker to run, QR code address prompt "unrecognized QR code" #1905
  • room.announce()中当参数为空字符串时, 调用获取群公告而不是设置群公告为空 #1902
  • 启动官方学习项目报错 #1898
  • 延期通过好友 #1890
  • I want wechaty puppet padpro token to create a wechat bot #1882
  • msg.mentionSelf()方法不对,始终返回false #1877
  • 需要取到Contactid或者微信号 #1873
  • Function message toContact\(\) should to be implemented. #1855
  • install error #1853
  • wechaty-puppet can not install in electron #1851
  • wechaty-puppet-macpro alpha test #1846
  • Action required: Greenkeeper could not be activated 🚨 #1781
  • 登陆二维码无法识别 #1753
  • 经常报以下warning #1634
  • Doesn't work with UK Android account/device #1556

Merged pull requests:

v0.28

4 years ago
  1. Fixed sending image and file function for wechaty-puppet-puppeteer by @su-chang wechaty-puppet-puppeteer#106
  2. Add sending Mini-Program feature by @limingth @zhaoic @lhr0909 #1806
  3. Add Room announcement support for wechaty-puppet-padpro by @windmemory #1816
  4. Start using Chatie DevOps Toolset for Wechaty, by @huan
  5. 添加用 id 寻找Room RoomQueryFilter #1785
  6. missing puppets in latest docker image #1820

v0.28 (2019-09-02)

Full Changelog

Implemented enhancements:

  • Room announcement is not working properly for some puppet implementation #1816
  • [Feature] Send Mini-Program #1806
  • Upgrade the repo to use Chatie DevOps toolset #1793
  • Easy install for wechaty-puppet-puppeteer #1792
  • 添加用 id 寻找Room RoomQueryFilter #1785
  • Generate version.ts before publish to NPM #1780
  • Use @chatie/tsconfig as the tsconfig.json base configuration #1777
  • Could you please upgrade dependency for wechaty-puppet-puppeteer #1758
  • Missing comment example code in room.ts file #1751

Fixed bugs:

  • missing puppets in latest docker image #1820
  • Cannot Contact.say\(imageAsFileBox\) with puppeteer #1795
  • Document bug in README #1690
  • Fix comment, in replacing #1784 #1814 (xinbenlv)

Closed issues:

  • 登录不了,有办法解决吗? #1842
  • 登录不了一个错误报告 #1841
  • 想获取微信消息列表,Message.findAll()返回为空? #1825
  • 用了一个月itchat相安无事,用了2小时wechaty... #1815
  • Wechaty process.exit(1) if token is not valid #1811
  • TSError: ⨯ Unable to compile TypeScript: #1791
  • padpro 无法连接服务器 #1789
  • Action required: Greenkeeper could not be activated 🚨 #1765
  • Mention api add @ automatically no matter it is already exists in the text #1718

Merged pull requests:

v0.26.0

4 years ago

Good News: We have new improvements after the past months!

All the users will be suggested to upgrade to the latest v0.26 version for the latest updates and stable fixes.

Cheers!

Huan

Implemented enhancements:

  • Recalled message design #1728
  • Message.toString format discussion #1676
  • Upgrade wechaty-puppet-padchat stable version #1642
  • New Puppet - wechaty-puppet-padpro #1629
  • room mention contact should using roomAlias #1604
  • for Pull Request: Disable puppet unit tests that requires a token #1580
  • Refresh contact self when updating self name or signature #1576
  • Pass mention list down to puppets #1560
  • Wechaty Puppet Ioscat Testing: iPhone(iOS) Wechat Hooking Support are comming! #1530

Fixed bugs:

  • Room.owner() function is printing log in info level #1769
  • Build is failing caused by promisify missing arg3 #1761
  • Comment: Example code error #1746
  • Documentation网站挂掉了 #1739
  • 构建docker镜像报错 #1593
  • memberAll() not running in docker after v0.21.27 #1573
  • ERR PuppetPuppeteer roomRawPayload #1547

Closed issues:

  • invalid processingToken:make the account logout.. #1766
  • Action required: Greenkeeper could not be activated 🚨 #1764
  • Action required: Greenkeeper could not be activated 🚨 #1763
  • [已解决]无法自动通过好友请求 #1755
  • Missing comment example code in contact.ts file #1748
  • Is there a way to send message to a contact instead of making a reply using say()? #1734
  • await message.mentionSelf() is invalid #1725
  • message.mentionSelf() #1724
  • wechaty-puppet-padpro 获得的语音消息文件是slk格式 #1720
  • 有没有针对企业微信App的登录和收发消息的方案啊? #1717
  • 关于win7安装 npm install wechaty-puppet-padpro 的问题 #1716
  • 小桔机器人挺好用,希望详细对比WeTools,并分享开发Roadmap,谢谢 #1712
  • npm start 到 [email protected] 报错。。。 #1708
  • 这是什么 #1703
  • 使用自动拉人入群功能 #1697
  • electron中调试模式下可以正常启动,打包后无法使用 #1694
  • docker compose #1688
  • Errors occur sometimes when bot running #1675
  • msg.say 重复执行 #1674
  • WECHATY_PUPPET=mock failed, TypeError [ERR_INVALID_ARG_TYPE]: The "request" argument must be of type string #1673
  • Room.say method is not working #1665
  • 这是基于什么协议的web pc ipad #1664
  • Adjust data sync order when message event triggered #1659
  • 乱码 #1656
  • 乱码 #1655
  • ipad #1650
  • [RFC] custom id on Contact #1647
  • 请问, 怎么让机器人通过手机号添加好友 #1639
  • 请问wechaty可以关掉日志输出吗? #1638
  • ubuntu 18.04下无法正常启动chrome #1637
  • 在docker容器中,npm install wechaty,运行mybot报错:Failed to launch chrome! #1636
  • Why I stuck here? #1624
  • can robot join room by qrcode? #1622
  • 调用私发/群内发消息接口,emit出的消息事件中消息时间有误 #1619
  • 调用发消息接口后,emit 出的消息事件对应的消息时间不正确 #1617
  • room.on('join',function(room, inviteeList, inviter)), can not get the inviteeList i.e. the new member #1613
  • cgggg #1610
  • c #1609
  • I use this function keyroom.add(contact),it doesn't work #1601
  • use "wechaty-puppet-padchat" cannot login successfully #1600
  • wechaty无法查找到群名称中有~的群 #1592
  • Sending messages with MessageType=1 is not supported #1588
  • 不能通过群成员添加好友 #1578
  • [RFC] Launch broken when using wechaty-puppet-padchat #1575
  • Delete the breaking change tag in issue #1565

Merged pull requests:

v0.20.0

5 years ago

Change Log

v0.20

New Features

  1. Send/Receive Url Link message #1539
  2. Message.find() to search message #1534
  3. room-invite event was added, bot can accept() room invitation #1492
  4. ContactSelf.qrcode() Bot can get qrcode for itself #1301

Breaking Changes

  1. Contact.alias changed from Sync to Async #1500

FULL CHANGELOG

v0.20.0 (2018-08-18)

Full Changelog

Implemented enhancements:

  • [RFC] Suggest to have more detailed error message when doing ContactSelf related operations #1549
  • feat: add receive and send link #1539
  • Feat: add Message.find to search in cache. #1534
  • Get Rid of the Dependences which requires build when npm install #1529
  • Puppet Padchat Not Supported Attachment File Type in Message. #1524
  • BREAKING CHANGE: v0.20 Contact.alias changed from Sync to Async #1500
  • Pre-install all official supported Puppets when build docker image #1493
  • 【Proposal】New 'room-invite' event #1492
  • Message type: mini program for Message.type() #1444
  • Promote PuppetPadchat to SOLO NPM Module wechaty-puppet-padchat #1372
  • PuppetPadchat: support message type of StatusNotify with op id push update information #1310
  • Make tslint.json to be simple with extends standard. #1303
  • feat: PuppetPadchat supports get QrCode for userSelf(can be scan by others for adding friend) #1301
  • New Puppet: PuppetPadchat #1249
  • feat: add Wechaty.unref\(\) support to unref all the underlying resources. #1197
  • Disable HotImport in PRODUCTION Environment #907
  • Reconstruction PuppeteerMessage Class #724
  • [New Puppet] PuppetWechat4u - enable by WECHATY\_PUPPET=wechat4u #69

Fixed bugs:

  • TypeError: Cannot read property 'type' of undefined at AnotherOriginalClass.type #1545
  • contact alias not sync after call contact.alias(string) to set alias #1517
  • Fix Puppet Memory Multiplex Problem with Multi-Instance Wechaty and Pre-Instanced Puppet #1516
  • Question: How to pre-set puppet module to be used by wechaty with docker #1478
  • JSDoc bugs #1475
  • PuppetPadChat:Contact.avatar() Error #1473
  • PuppetWeb loses event listeners when resetting #1470
  • Check the puppet version to satisfy the Wechaty requirement #1453
  • Split the xxxIdList to chunks when map it to payload to prevent block the event loop #1450
  • FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory #1435
  • puppetPadchat.reset\(\) should call start\(\) after stop\(\) #1385
  • cannot run speech-to-text-bot #1350
  • Error: Cannot stub non-existent own property #1247
  • How to run hot-import-bot example #1222
  • PuppetWebEvent onLogin: browser not fully loaded(ttl=30), retry later #970

Closed issues:

  • appear bug when logout use padchat #1559
  • [RFC] Shall we clean up room information when we receive room events? #1552
  • Want to create UrlLink with control on all properties #1541
  • memory-card cannot save successfully #1537
  • Error: Cannot find module 'babel-plugin-transform-runtime' from '/bot' #1536
  • contact name not sync after call sync() or restart docker (RPC) #1531
  • Why wechaty need express #1523
  • calling await bot.stop() can't stop the bot #1519
  • @ 人没提示 #1504
  • Puppet Name use full npm name instead of alias: padchat => wechaty-puppet-padchat #1496
  • why friendship.contact().name() is "" #1490
  • why the padchat always restart(login)? #1485
  • sending a custom emotic led to an error on the server #1483
  • PuppetPadChat: The server always restart on pm2. #1472
  • PuppetPadchat Not response after run several hours #1443
  • PuppetPadchat: make contact has a function with real wechat ID #1423
  • Maybe we shouldn't syncContactsAndRooms per 3 hours #1414
  • PuppetPadchat: Cannot read property 'user_name' of undefined #1392
  • I changed my operating system,but when run dev ,still output restarting #1382
  • Room-join event show ERR PuppetWebFirer fireRoomJoin() not found(yet) error (Bug) #1169
  • Room.findAll\(\) get error when rooms more than 400 #1112
  • emit error event when listen the page has been closed #1110

Merged pull requests:

v0.18.0

5 years ago

WECHATY v0.18: REDUCE WEIGHT

The only purpose for Wechaty v0.18 is to: Reduce Weight!

But, why do we need to reduce weight?

Let's back to May 2016, when the first version of Wechaty was published, it only contains thousands of lines of the code, and at the end of the year 2016, we have about 10,000 lines of the code. (you can read our blog at this time)

As the time passed by in 2017 & 2018, we added more features to Wechaty, like send attachment files, support WeChat protocol other than web like ipad, which means we write more and more codes in Wechaty repository... at last we get almost 30,000 lines of the code, and to be precise: 27,630. (with 377 unit tests, you can check it out at here if you are interested)

Is that fat? 30,000 lines of the code, is not too much, but it is not a small number too. After we finished abstracting the puppet base class after v0.16, it seems we have very good reason to begin reducing weight:

  1. Abstract Puppet Class need to be imported by every puppet implementations, and it should to be a solo npm module, with good version management.
  2. Every Puppet Implentation Class is better to be a solo npm module, becasue we can only install the required source code that we needed.

So at this version (v0.18), we have the follow npm modules that splited out from Wechaty:

WECHATY PUPPET LIST

1. For Puppet User

Stage Name Wechaty Puppet Backend Version
Release puppeteer PuppetPuppeteer Web API via Browser Hooking PuppetPuppeteer
Beta padchat PuppetPadchat iPad Protocol PuppetPadchat
Alpha wechat4u PuppetWechat4u Web API via HTTP PuppetWechat4u
Alpha ioscat PuppetIoscat (WIP) iPhone App Hooking PuppetIoscat
TBW Android Android Hook 0.0.0
TBW Win32 Win32 Hook 0.0.0

2. For Puppet Builder

Stage Name Wechaty Puppet Backend Version
Release N/A Puppet Abstract Base Class Puppet
Release mock PuppetMock Mocking PuppetMock

If we count the other npm modules that split out from Wechaty before, we can also list them as the following:

  1. cloneClass: Clone an ES6 Class as Another Class Name for Isolating Class Static Properties.
  2. hotImport: Hot Module Replacement(HMR) for Node.js
  3. Brolog: Brolog is Logger for Angular in Browser like Npmlog.
  4. FileBox: Pack a File into Box for easy move/transfer between servers no matter of where it is.(local, remote url, or cloud storage)
  5. MemoryCard: Memory Card is an Easy to Use Key/Value Store Implements ES6 Map with Async API, with Swagger & Serialization Support.
  6. RxQueue: Easy to Use RxJS Queue for Throttle/Debounce/Delay/DelayExecute
  7. StateSwitch: State Switch is a Monitor/Guard for Managing Your Async Operations.
  8. Watchdog: An Timer used to Detect and Recover from Malfunctions

Hmm... lots of them aha? So how can we keep all of them in one repository and manage them easily? It must be a nightmare!

So at last, as we published the v0.18, we only left 5,465 source lines of the code in Wechaty repository(11,006 physical lines). We can see a timeline from the history:

Source Lines of Code for Wechaty

Date SLOC
2016.5 3,000
2017.1 10,000
2018.1 20,000
2018.6 27,630
2018.7 11,006

From 27,630 to 11,006, we almost get the half size than before, cheers!

Change Log

v0.18.0 (2018-07-11)

Full Changelog

Implemented enhancements:

  • PuppetPadchat Upgrade TODO Lists #1442
  • Dynamic install puppet implementations instead of pre-install #1437
  • Split PuppetWechat4u as a NPM module #1419
  • PuppetPadchat: The contact.star() doesn't work #1413
  • Promote PuppetPuppeteer to SOLO NPM Module wechaty-puppet-puppeteer #1371
  • Promote Puppet to SOLO NPM Module wechaty-puppet #1370
  • New Puppet: PuppetMock for Testing & Starter #1177

Fixed bugs:

  • Cannot detect the the environment WECHATY_PUPPET v0.17.118 #1456
  • PuppetPadchat Server logout and login cycle average 3-5mins #1446
  • WARN PuppetPuppeteer initWatchdogForPuppet() dog.on(reset) last food:inited, timeout:120000 #1439
  • ts-node 7.0 breaking change: Skip files by default #1383
  • Can not find room after add member to the room #1380
  • PuppetPadchat: friend value of ContactPayload is undefined #1359
  • WXGetContact cannot get user_name #1358
  • leveldown::Database::Close: Program terminated with signal SIGSEGV, Segmentation fault. #1355

Closed issues:

  • QR Code problem under screen/xterm #1455
  • How to get the room title in v0.17 wechaty? #1454
  • should not download chromium by default #1451
  • PuppetPadChat:Send media file. #1436
  • PuppetPadchat:My wechat accou can not login. #1416
  • It reports errors when the room delete one member. #1415
  • cannot get user\_name from raw payload: {} \[object Promise\] Error #1399
  • Where can I see the complete API documentation of puppet-padchat, such as createRoom and Moment #1391
  • still restart #1378
  • WARN PuppetPuppeteer #1376
  • m.say() repeat many many times #1216
  • room.say mention is not work #1185
  • 获取所有群 #1020
  • Any way to keep login for days? #988

Merged pull requests:

v0.16.0

5 years ago

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

Blog

https://blog.chatie.io/wechaty-new-release-version-0.16/

CHANGE LOG

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. BREAKING CHANGES

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:

v0.14.0

6 years ago

Wechaty v0.14

Implemented enhancements:

  • Rename {test,fixture,example,...} to {tests,fixtures,examples,...} etc. #1127
  • Trigger Deploy on Branch /v\d+.\d+$/ #956
  • Wechaty Version Numbering #905
  • [New Puppet] Puppeteer #790
  • [enhancement] Add timezone in to Dockerfile #594
  • [docker] to prevent docker users install a local dependence of wechaty #281

Fixed bugs:

  • When run CI inside the container: openBinaryFile: does not exist (No such file or directory) #1137
  • Try to use Wercker Shippable CI to replace Circle CI #1134
  • Pupeteer not work after upgrade to v1.1 #1103
  • 关于MsgType 的介绍文档404了 #1079
  • Docker test fail because ts-node behavior changed between v3 and v4 #1050
  • fix description #1027
  • ERR Profile save() exception: Error: EACCES: permission denied, open '/bot/demo.wechaty.json' #982
  • Dockerfile.onbuild build error.Directory permissions wrong #961
  • [docker] onbuild failed to start when we put wechaty as dependency in package.json #500

Closed issues:

  • How to send file #1150
  • Failed to download Chromium r543305 #1145
  • Signals (e.g. ^C) handling #1122
  • OK to add a .eslintrc.js file? #1120
  • Q: All the media types #1115
  • TTL expired error when login #1114
  • Cannot read property 'MemberList' of undefined still exisit in the latest docker version #1111
  • emoji suggestion #1108
  • Regenerate docs/index.md by run npm run doc #1105
  • hot-reload-bot adding hot-reloading config #1100
  • Third options to run wechaty #1085
  • issue #1076
  • Session last only for 1 hour in Azure #1059
  • 出现 no Url 错误后,程序崩溃 #1055
  • 图片发送一次后,图片损坏 #1040
  • ERR PuppetWebBridge init() exception #1018
  • 我实在解决不了这个问题了~菜鸟一枚 #998
  • TypeError: Cannot read property 'MemberList' of undefined #984
  • Using hot-import cannot quit wechaty when quit the code #978
  • Error: Navigation Timeout Exceeded: 30000ms exceeded #966
  • hot-reload does not work #958
  • [docker] Login error #950
  • Invalid audio output parameters received; using fake audio path. #939
  • Keep getting "can not found bot file: src/main.ts" #937
  • glSetDrawRectangleCHROMIUM: failed on surface #934
  • [FR] Create an example for using hot-import for listener and other modules #923
  • Bot log out frequently and got some strange error between it logout and relogin automatically #612

Merged pull requests: