跳到主要内容

Changelog

Wechaty Contributors

Contribute

Active Contributors

  1. @lijiarui: #2118 #1876 #1875 #1859 #1702 #1700 #1692 #1633 #1631 #1615 #1614 #1533 #1514 #1510 #1502 #1498 #1497 #1486 #1482 #1481 #1477 #1408 #1407 #1405 #1402 #1375 #1374 #1373 #1352 #1351 #1348 #1347 #1344 #1341 #1338 #1333 #1331 #1325 #1313 #1116 #1086 #816 #812 #805 #798 #757 #725 #440 #370 #364 #362 #328 #324 #323 #321 #318 #303 #292 #139 #112 #110 #38
  2. @huan: #2124 #2091 #2028 #1931 #1888 #1870 #1782 #1597 #1143 #1131 #1083 #1075 #1074 #1073 #1072 #1071 #860 #854 #841 #831 #810 #469 #462 #455 #449 #396 #351 #317 #316 #315 #314 #313 #312 #311 #168 #158 #149 #146 #143 #142 #141 #25
  3. @windmemory: #2078 #2074 #2067 #2051 #2050 #2048 #2043 #2039 #1832 #1770 #1735 #1729 #1662 #1660 #1643 #1630 #1577 #1571 #1557 #1550 #1538 #1526 #1503 #1457
  4. @su-chang: #2095 #1936 #1921 #1915 #1913 #1910 #1900 #1895 #1883 #1868 #1866 #1864 #1861 #1833
  5. @mukaiu: #1089 #337 #470 #438 #421 #420 #415 #376
  6. @JasLin: #404 #358 #105 #100 #78 #76
  7. @xinbenlv: #1814 #1017 #935 #388 #361
  8. @binsee: #844 #811 #771 #744 #727
  9. @kis87988: #1908 #1623 #1607 #1570
  10. @linyimin-bupt: #1757 #1752 #1750 #1749
  11. @TbhT: #1713 #1583 #1582
  12. @suntong: #1677 #1129 #1123
  13. @Gcaufy: #1625 #1620 #310
  14. @SilentQianyi: #1891 #1886
  15. @LinuxSuRen: #1838 #1836

Contributors

  1. @profthecopyright: #2104
  2. @yesxin: #2079
  3. @satouriko: #1904
  4. @LanceZhu: #1854
  5. @zhaoic: #1822
  6. @coderwhocode: #1819
  7. @leochen-g: #1818
  8. @monkeywithacupcake: #1759
  9. @lhr0909: #1666
  10. @jzj1993: #1661
  11. @bitwater: #1532
  12. @IdiosApps: #1087
  13. @hiwanz: #1036
  14. @htoooth: #1014
  15. @zhenyong: #770
  16. @xjchengo: #416
  17. @ax4: #380
  18. @cherry-geqi: #97

Changelog

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 wechaty-puppet@0.25.7 version for wechaty #1980
  • The qrcode all the time timeout #1977
  • Upgrade wechaty-puppet-hostie@0.7.10 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 (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 file-box@0.10 #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 (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
  • 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:

  • room.announce()中当参数为空字符串时, 调用获取群公告而不是设置群公告为空 #1902
  • 延期通过好友 #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
  • 经常报以下warning #1634
  • Doesn't work with UK Android account/device #1556

Merged pull requests:

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:

  • 登录不了一个错误报告 #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 (2019-05-11)

Full Changelog

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 到 puppeteer@1.12.2 报错。。。 #1708
  • 这是什么 #1703
  • 使用自动拉人入群功能 #1697
  • 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.22.4 (2018-08-29)

Full Changelog

Implemented enhancements:

  • Closing wechaty-puppet-padchat beta test #1572
  • Add API List to README #1566
  • Add support for send url rich media message #718
  • contact.stranger() still returns true after adding friends between bot and user #293
  • be careful about the unofficial client check and report (in browser) #29

Fixed bugs:

  • ReadError: Database is not open [object Promise] - FlashStoreSync was closed when need writing #1433
  • The latest docker get ContactGetter error when get wechat OA message #974
  • "Chromium revision is not downloaded." #954
  • Room.memberAll(FilterString) if FilterString are all with emojis #704
  • Room.find\(\) can find the room when the bot is removed from the room #254

Closed issues:

  • bot logined, but scan event still. #1567
  • Wechaty v0.20 & Puppet Padchat v0.14 Released. Padchat Alpha Testing Closed. #1296
  • Session closed when running for a long time #1052

Merged pull requests:

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
  • 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 (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 (2018-06-21)

Full Changelog

Implemented enhancements:

  • Unable to start multiple instances with padchat puppet #1367
  • Prevent the Floating Promise in the Async/Await Code #1346
  • BREAKING CHANGES v0.16: FriendRequest class will be replaced with Friendship #1312
  • feat: PuppetPadchat can set avatar for userself support. #1298
  • 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 scan event args will be different! #1262
  • BREAKING CHANGE: v0.16 Message.mention\(\) change from sync to async #1259
  • BREAKING CHANGES: v0.16 Room.member\(\) from sync to async #1258
  • Promote Profile class to a solo NPM module: MemoryCard #1257
  • rewrite roomFindAll() #1255
  • function friendRequestAccept #1254
  • read messageRawPayload by id #1253
  • function friendRequestSend #1252
  • rewrite contactFindAll() #1251
  • Upgrade Docker Base Image from Ubuntu 17.10 to 18.04 #1239
  • NPM Switch: promise-retry to replace retry-promise #1235
  • Add unit test to puppet accessory #1219
  • Use browser implementation of Node.js' stream library #1201
  • feat: Add for await \(const contact of room\) {} support by ES6 iterators override #1198
  • BREAKING CHANGE: v0.16 on('friend`) arguments changed! #1196
  • TypeScript Strict Mode: set noImplicitAny to true #1180
  • Generic for Return Child Class Type in Abstract Class Implementation #1178
  • BREAKING CHANGE: v0.16 Message.ext() return '.ext' instead of 'ext' before #1168
  • Encapsulated Contact, Messag, FriendRequest, and Room into PuppetWeb #1166
  • BREAKING CHANGE: v0.16 will remove MediaMessage class #1164
  • BREAKING CHANGE: v0.16 will replace Message.content\(\) with Message.text\(\) #1163
  • Continious Deploy to NPM with @next tag when the MINOR version number is odd(in developing branch) #1158
  • BREAKING CHANGE: first arg of room-leave event licener changed from Contact to Contact\[\] #723
  • Should throw Exception when there have API Error. #683
  • delay time for all function(method) that calls Tencent API #596
  • [todo] allow Wechaty to be multi-instance #518

Fixed bugs:

  • When bot quit the room, bot still thought it in the room. #1345
  • When the bot remove one out of the group, room data didn't refresh #1343
  • Room Event cannot work as expect after create a new room #1342
  • cannot refresh room data when execute the code again #1339
  • can't run demo #1337
  • room-leave error #1334
  • room-join event, when run room.say, it actually run contact.say #1330
  • room-leave event cannot get leaver member #1329
  • should refresh room data when there is a room event #1328
  • [room topic event] throw error: no changerId found #1326
  • room-join cannot get member #1324
  • contact.avatar\(\) cannot work as expect #1321
  • run contact-bot throw error #1319
  • Padchat: WXAutoLogin result is faild, but I still receive message #1316
  • Fix the + in data for PuppetPadchat #1302
  • get fromId not right for room invitation sys message #1297
  • Error: The command "echo $TRAVIS_OS_NAME" exited with 1. #1236
  • TravisCI Conditional Deployment #1211
  • Update the peerDependencies of rx-queue: rxjs@6 from rxjs@5 #1205
  • Cannot send image message on v0.15.21 #1175
  • cannot refresh room topic or contact name #1157
  • How to avoid the memory leak #981
  • Puppeteer Navigation Timeout Exceeded: 30000ms exceeded #870
  • SyntaxError: Unexpected end of JSON input #846
  • function Message.mention\(\) should recognize both magic code and blank #813

Closed issues:

  • 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
  • no encodedText error in padchat-decode.ts #1365
  • BREAKING CHANGE v0.16 room.add return Promise\<void> instead of return Promise\<boolean> #1362
  • media-file-bot cannot save xlsx file #1349
  • room-leave-error #1335
  • room-leave event throw error, cannot get leaver contact #1323
  • friendship cannot accept friend request automatically #1322
  • PadchatRpc WXCheckQRCode result: {"message":"WS请求错误","status":-19} #1315
  • m.forward 是 undefined ? #1272
  • Navigation Timeout Exceeded: 30000ms exceeded #1248
  • profile.set can only set 'cookies' instead of other keys #1240
  • Create a websocket ipad demo #1228
  • Proper wechaty and its dependency installation #1225
  • can't run the typescript examples #1221
  • Scan QR Code not shown on terminal, wechaty@0.14.4 #1220
  • 请问怎么添加微信群中的人当做自己的好友呢 有例子可以参考吗 #1207
  • room-bot.ts error #1199
  • TypeScript 2.9 with trailing comma after rest parameters. #1188
  • code example 'media-file-bot' not working #1183
  • QrCode scan event not refresh on v0.15.21 #1175 #1176
  • Version 10 of node.js has been released #1170
  • 自动加好友,加好友成功后,向对方发信息报错 #1165
  • Use injection-js for Wechaty v1.0 provide the resolvers of the Wechaty Puppet #1146
  • findAll ,WARN Room parse() on a empty rawObj #1141
  • Rename all find\(\) method to search\(\) #1132
  • ERR PuppetWebBridge init() exception: Error: connect ECONNREFUSED 127.0.0.1:35493 #1113
  • Feature request: sending file with a stream (creating media message with a stream) #1092
  • node_modules/_wechaty@0.13.36@wechaty/dist/src/config.d.ts(1,24): error TS2307: Cannot find module 'raven'. #1035

Merged pull requests:

v0.14.0 (2018-04-15)

Full Changelog

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

Closed issues:

  • How to send file #1150
  • 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:

v0.12.0 (2017-10-30)

Full Changelog

Implemented enhancements:

  • Promote rx-queue to SOLO NPM Module #938
  • Add Wechaty.logonoff() method #926
  • Registe Wechaty Listeners with a try {} catch {} block in order to prevent listener function crash the framework. #878
  • Upgrade CircleCI from 1.0 to 2.0 #863
  • Switch Docker Node Image from alphin to official node:7 #862
  • Click Web Wechat Switch Account Automatically to get qrcode immediately when bot logout #636
  • Upgrade docker image from Node.js v7 to v8 #577
  • [todo] switch unit test tool from AVA to TAPE #513

Fixed bugs:

  • [CI] Homebrew must be run under Ruby 2.3! You're running 2.0.0. (RuntimeError) #936
  • "PromiseRejectionHandledWarning: Promise rejection was handled asynchronously" when Wechat says "当前登录环境异常" #925
  • TypeError: cookieList.filter is not a function #919
  • TypeError: Cannot read property 'error' of null #918
  • ERR PuppetWebBridge init() initPage() onLoad() exception: undefined #917
  • Sometimes Wechaty can't login (with puppeteer) #899
  • [ci] WebDriver Error: "no such session" #756
  • [ci] execute proxyWechaty(init) error: 503, init() without a ready angular env #329
  • [ci log] watchdog reset after 120 seconds #195
  • Selenium WebDriver driver.getSession() wait a long time #86

Closed issues:

  • 在登录失败时的异常提示优化 #898
  • CANT RUN THE WECHATY-GETTING-STARTED, PUPPETWEBROWSER valid() getSession() #891
  • Error after restart vps invalid driver at ttl 0 #788
  • webdriver.executeScript wait a long time(26s) before page load #2

Merged pull requests:

  • Replace WebDriver by Puppeteer (#790) #860 (huan)
  • chore(package): update coveralls to version 3.0.0 #854 (huan)

v0.9.0 (2017-10-04)

Full Changelog

Implemented enhancements:

  • Support hot-reload for Wechaty events listeners #820
  • [jsdoc] additional optimizations #774
  • [bug] Support for send 25Mb+ size files #766
  • [Announcement] Drop support for phantomjs #763
  • chrome-headless support #739
  • Add Transpond Message #726
  • Cannot send pdf file using MediaMessage #710
  • Use Sentry.io to report exceptions #580
  • [enhancement] Add pdf, docx etc support to MediaMessage(now only picture is supported) #538
  • use babel-node to run javascript(.js) file inside docker #507
  • [todo] Change to use native Dom Websocket instead of socket.io library #502
  • License Change: from ISC to Apache-2.0 #474
  • requesting a new QR code cost more than 2 minutes #434
  • Send(upload) an image twice will cause error. #422
  • Keep emoji characters from user name and room name #207
  • [Feature request] Sending Stickers #156
  • [Feature request] @mention support? #153
  • [Docker] add a onbuild image to Wechaty #147
  • [doc] To Embed Document in Wechaty Code for Generating Automaticly #73
  • it seems RECALLED: 10002 message dose't trigger on('message') event #8
  • Support Message Type of Image/Video #4

Fixed bugs:

  • Cannot send image after restart #777
  • [bug]Cannot read property 'getUserName' of undefined #772
  • [tslint] stuck on v5.3 and can not upgrade #762
  • CI, green keeper and package-lock under npm 5 #656
  • watchDogReset() watchdog reset after 60 seconds (phantomjs head) #633
  • [test] Unit Test for mentioned feature does not run at all #623
  • error TS2345: Argument of type 'string | MemberQueryFilter' is not assignable to parameter of type 'MemberQueryFilter' #622
  • [Doc] Add say\(new MediaMessage\('/tmp/mediafile.gif'\)\) documentation #587
  • Node Typing BUG: process.env: any #582
  • [ci] Appveyor error: should get cookies after loadSession\(\) #579
  • wechaty v0.8.54 does not install all required component #522
  • message.mentioned() does not work as expected #512
  • Some types of media file is saved as a 0 byte file. #504
  • [docker] onbuild failed to start when we put wechaty as dependency in package.json #500
  • ts-node commond not found after update docker image #492
  • may be not need .vscode folder, need .editorconfig #489
  • Room.findAll\(\) should always return a ready\(\)-ed instance #477
  • MediaMessage#filename() should not use timestamp as part of the filename #465
  • [ci] × src » message » ready() contact ready for ToNickName #445
  • Build Docker image from zixia/wechaty:onbuild,/bot/node_modules does not exist. #436
  • Concat.avatar() faild ,when hostname changed from https://wx.qq.com to https://wx2.qq.com #418
  • [test] Unit Tests under Linux by TravisCI keep failing #384
  • checkRoomJoin\(\) cannot get inviteeList sometimes #248
  • [ci log] no driver process after quit #210
  • [ci] no new tests completed within the last 180000ms of inactivity #175
  • how to NOT scan the QRCode on each opening #151
  • Unhandled Rejection: checkLegacyResponse() at error.js:505 #122
  • WebDriverError: unknown error: r.isBrandContact is not a function #81
  • Can't get wechaty up and running using phantomjs #60
  • accountFactory of angularjs in wxapp work not right under Phantomjs, but it work without problem with chrome #28
  • Fixed: replace document.domain with location.hostname since front one sometimes lose subdomain name #770 (zhenyong)

Closed issues:

  • vscode setting config error #843
  • add static method Message.findAll\(\) #765
  • cannot find Chrome binary #746
  • UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: no puppet instance #738
  • MediaMessage.filename() cannot get correct img name. #722
  • MediaMessage.ext() cannot work as expect #721
  • the latest docker version 139 cannot send file #720
  • what I need is just a lib instead of a product #709
  • How to link it with personal account. #693
  • Sending Images #690
  • windows 10 throws PuppetWeb initBrowser() exception: got invalid driver at ttl 0 #688
  • Group game #675
  • if wechaty cannot get inviteeList when emit room-join , suggest it emit room-fire and get warning info. #671
  • 在 websocket 的回调中无法使用 wechaty 吗 #665
  • Room.find() 发送消息提示 say is not a function #664
  • 获取不到avatar #645
  • Get ECONNREFUSED when bot logout and cannot re-login #617
  • Modify Function Room.create return type, from Promise\<Room\> to Promise\<Room|null\> #616
  • init 后会打开扫码的网页? #601
  • Error: ENOENT: no such file or directory, stat '/wechaty/dist/.git' #581
  • 在 Windows Server 上初始化的时候,chromedriver 报错。 #574
  • 启动后卡住问题 #566
  • whatever #543
  • [enhancement] handle room name change event #532
  • got [aq.qq.com] domain #526
  • some strange session error #523
  • static Contact.find() / static Contact.findAll() throws exception #520
  • Cannot set alias of Contact Object getting from message.from\(\) method when Contact is not a friend #509
  • room.member() can not return right result #437
  • windows run program send images throw out error #427
  • group names have HTML in them #382
  • jsdoc2md may flush some pieces of the embedded doc #378
  • Secure WebSocket(wss) do not work with Self Signed Certificate in PhantomJS #12

Merged pull requests:

v0.8.2 (2017-05-03)

Full Changelog

Implemented enhancements:

  • Promote StateMonitor to a solo NPM module: StateSwitch #466
  • Display detailed error trace when an error is caught in async #360
  • Room.find({topic: topic}) should allowed to return null #291
  • add room-bot-leave event #250
  • Prepare to rename the nick/remark/display for contact/room #217
  • [new feature] add function message.mention() #216
  • [new feature] set bot's nickname in the group #201
  • [feature request] fire room-join when someone joins from a QR Code #155
  • #4 send image/video #337 (mukaiu)

Fixed bugs:

  • Reuse MediaMessage upload fail.Can be allowed MediaMessage reuse? #439
  • Room.member() cannot find contact correctly #365
  • Room.alias() should return null if we have not set the alias in the room #283
  • Cannot read property 'Symbol(Symbol.iterator)' of undefined #273
  • add sys message in FriendRequest Event #260
  • [docker] chromium-browser fail to start after upgrading chromium from v53 to v56 #235
  • typo in Wiki #205
  • doc bug #196
  • Linting Error from PR@lijiarui #181
  • [document] should list only the public/stable API to users #174

Closed issues:

  • Always getSession timeout #463
  • how to create more bots at once #460
  • how do we get avatar link? #424
  • can't run the example #423
  • 有没有查找好友的方法? #411
  • ding-dong-bot-ts cannot run normally on Mac #410
  • Failed due to EAI_AGAIN registry.yarnpkg.com:443 #408
  • cannot remark friend in centos system #406
  • MediaMessage in ding-dong-bot example can not be create #399
  • wechaty can auto receive money(red envolop/transfer) on account. #398
  • [bug] room.say() return contact's alias when bot set alias for some one #394
  • Room.fresh\(\)not work; Room.alias\(\)returns null #391
  • should addphantomjs-prebuilt in package.json #385
  • error on room join: TypeError: room.topic is not a function #383
  • problem starting docker container . SyntaxError: Unexpected token function #352
  • [discuss] Rename Wechaty to Chatie? #346
  • cannot send images / this.puppet.getBaseRequest is not a function #338
  • Some strange log warn #336
  • run bot in server,about 1 hour ago ,the process will be killed #330
  • wechaty 0.7.21 works but 0.7.24 failed with Argument of type 'string | Promise\<boolean>' is not assignable to parameter of type 'string'. #282
  • how i can save avatar without await keywords? #278
  • 如何获取MsgType为APP类型的信息,解析不成xml #262
  • [linting] fix needed for new tslint rule: trailing-comma #251
  • Avatar return empty image in example/contact-bot.ts #246
  • Room&Contact.find() should throw exception when it get more than one value #229
  • Contact.findAll() return contactList includes oa account #222
  • timeouts when running unattended #184
  • room.member() cannot find contact when contact set whose alias in the room #173

Merged pull requests:

  • Lazy to create a stream #470 (mukaiu)
  • chore(package): update state-switch to version 0.1.7 #469 (huan)
  • chore(package): update bl to version 1.2.1 #462 (huan)
  • fix(package): update brolog to version 1.0.13 #455 (huan)
  • chore(package): update fluent-ffmpeg to version 2.1.2 #449 (huan)
  • add magic code for room.say() when @bot happen #440 (lijiarui)
  • #3 support send gif #438 (mukaiu)
  • Limit video file size #421 (mukaiu)
  • add room.say(MediaMessage) #420 (mukaiu)
  • Fix chrome driver path problem in Windows #416 (xjchengo)
  • fix upload media url error #415 (mukaiu)
  • support brand checking of contact #404 (JasLin)
  • chore(package): update chromedriver to version 2.29.0 #396 (huan)
  • Add missing %s content for leaver not found error #388 (xinbenlv)
  • fix jsdoc flush issue #378 and minor fix on the doc examples #380 (ax4)
  • Limit the size of the sending file #376 (mukaiu)
  • add room-leave event #370 (lijiarui)
  • room.memberAll() & change room.member() query to 3 types #364 (lijiarui)
  • Add mention #362 (lijiarui)
  • Printout entire error trace when unhandledRejection was caught #361 (xinbenlv)
  • first item of memberList as owner is confusion #358 (JasLin)
  • chore(package): update ts-node to version 3.0.2 #351 (huan)
  • fix room test #328 (lijiarui)
  • remove blank #324 (lijiarui)
  • remove m.send() fucntion #323 (lijiarui)
  • Add JsDoc for Class Contact #321 (lijiarui)
  • 291 #318 (lijiarui)
  • chore(package): update yarn to version 0.21.3 #317 (huan)
  • chore(package): update nyc to version 10.1.2 #316 (huan)
  • chore(package): update tslint to version 4.5.1 #315 (huan)
  • chore(package): update check-node-version to version 2.0.1 #314 (huan)
  • chore(package): update @types/ws to version 0.0.38 #313 (huan)
  • chore(package): update @types/node to version 7.0.7 #312 (huan)
  • fix(package): update @types/selenium-webdriver to version 3.0.0 #311 (huan)
  • added hot load bots #310 (Gcaufy)
  • #283 #303 (lijiarui)
  • #291 change throw error to return null #292 (lijiarui)

v0.7.0 (2016-12-29)

Full Changelog

Implemented enhancements:

  • 请问可以获取联系人或群成员的性别、所属地域、头像吗? #121
  • Function Room.add() should return Promise\<boolean> #119
  • Could you add api to find contact by remark #117
  • Need to support AppMsgType: 100001 with MsgType: 49 #114
  • get room owner on event 'room-join','room-topic' #105 (JasLin)

Fixed bugs:

  • to silence all the output from webdriver(chromedriver) for log level INFO #150
  • tsc compiling error: Cannot find namespace 'webdriver' #136
  • remark(null) doesn't work #130
  • Cannot identify ['] in room topic #116
  • room.member() cannot get member when bot set remark for friend #104
  • contactFind(function (c) { return /.*/.test(c) }) rejected: javascript error: Unexpected token #98
  • Error: Chrome failed to start: was killed #95
  • Function message.to\(\): Contact|Room bug #88
  • Session Cookies not loaded correctly? #31

Closed issues:

  • too many levels of symbolic links #165
  • node dist/example/ding-dong-bot.js example运行异常 #159
  • deploying to server problems (running headless) #154
  • wechaty mybot.js start error #126
  • Room-join' para inviteeList[] cannot always work well when contain emoji #125
  • [help] install wechaty and its types #124
  • ERR Message ready() exception: Error: Contact.load(): id not found #123
  • enhance request.hello function #120
  • 无法自动通过好友请求 #115
  • [EVENT INVITATION] Welcome to join Beijing Node Party 18: Wechaty & ChatBot on 11th Dec. #107
  • another problem about docker run #103
  • Error: Server terminated early with status 127 #102
  • failed run demo in docker under centos #101
  • Wechaty.send() error when send message to the room #89
  • 基础运行报错.....我都有点不好意思问了.....汗.... #82

Merged pull requests:

  • chore(package): update @types/node to version 6.0.54 #168 (huan)
  • chore(package): update tslint to version 4.2.0 #158 (huan)
  • chore(package): update @types/selenium-webdriver to version 2.53.37 #149 (huan)
  • chore(package): update tslint to version 4.1.1 #146 (huan)
  • chore(package): update @types/sinon to version 1.16.33 #143 (huan)
  • chore(package): update @types/node to version 6.0.52 #142 (huan)
  • chore(package): update tslint to version 4.1.0 #141 (huan)
  • Update README.md #139 (lijiarui)
  • qrcode #112 (lijiarui)
  • Update README.md #110 (lijiarui)
  • fixed javascript error: attempt is not defined #100 (JasLin)
  • convert wechaty-bro.js to plain old javascript syntax #60 #97 (cherry-geqi)

v0.6.0 (2016-11-11)

Full Changelog

Fixed bugs:

  • [Docker] Config.isDocker is not right in some Docker version / Linux distribution #84

v0.5.22 (2016-11-10)

Full Changelog

Implemented enhancements:

  • To Disable WebDriverJS promise manager for Selenium v3.0 #72
  • [Upgrade to v0.5] Convert code base to Typescript from Javascript #40

Closed issues:

  • can't run demo in docker under mac #80
  • 在windows下运行例子,npm 环境中,报错关于getChromeDriver() #77

v0.5.9 (2016-11-07)

Full Changelog

Closed issues:

  • run on windows.error #75

Merged pull requests:

  • fix: memberList Method have no 'name' argument defined ,it'will cause a undefined error. #78 (JasLin)
  • fix issue #70 #76 (JasLin)

v0.5.1 (2016-11-03)

Full Changelog

Implemented enhancements:

  • Dockerize Wechaty for easy start #66
  • Wechat帐号界面语言设为中文环境下:wechaty的room-join room-leave room-topic 事件无法触发 #52
  • test/fix Watchdog with browser dead & timeout conditions #47
  • use StateMonitor to record&check wechaty/puppet/bridge/browser state change #46
  • [New Feature] send message by branding new method: say() #41
  • [New Feature] Contact.{tag,star,remark,find,findAll} #34
  • [New Feature] FriendRequest class and event #33
  • [New Feature] Room.{create,addMember,delMember,quit,modTopic} support #32

Fixed bugs:

  • Just have a try as example of tuling bot. But method message.self() seems work improper. #68
  • 在cloud9中运行wechaty报错 #67
  • 当用户昵称中含有表情时,无法触发room-join 事件 #64
  • room-join 事件下,无法通过contact.id 方法获取contact_id #54
  • FriendRequest is not export to npm module #50

Closed issues:

  • Run wechaty occurs chromedriver is still running and the solution #62
  • Can't run wechaty with error log #61
  • [design] new class: BrowserCookie #59
  • 在room中通过room.topic()获取不到room的topic #55
  • 近期wechaty启动失败次数较多 #53
  • TSError: ⨯ Unable to compile TypeScript src/puppet-web/event.ts (120,12): Type 'PuppetWeb' is not assignable to type 'void'. (2322) #51
  • demo 无法运行 #49
  • Suggest give an api to get url #45
  • element_wrong----contact.get('name') got room name not contact name #43
  • webdrive login always occur error, for one success login always cost 4-5 log trys #42

v0.4.0 (2016-10-08)

Full Changelog

Implemented enhancements:

  • [Feature Request] Add friend(Contact) to a group(Room) #14
  • Support Friend Request / Contact Add & Del #6

Fixed bugs:

  • Wechaty account logout unexpectedly #37
  • google-chrome fails to start in docker #26
  • wx.qq.com detect phantomjs and disabled it #21

Closed issues:

  • get rid of PuppetWeb.initAttach #35
  • webdriver fail in docker when use ava (parallel tests mode) #27
  • WARN PuppetWebBridge init() inject FINAL fail #22
  • node-tap strange behaviour cause CircleCI & Travis-CI keep failing #11

Merged pull requests:

v0.2.0 (2016-06-28)

Full Changelog

v0.1.1 (2016-06-09)

Full Changelog

Fixed bugs:

  • ding-dong bot broken due to typo #5

v0.0.6 (2016-05-15)

Full Changelog

Closed issues:

  • selenium-webdriver & phantomjs-prebuilt not work together under win32 #1

Merged pull requests:

v0.0.5 (2016-05-11)

Full Changelog

* This Changelog was automatically generated by github_changelog_generator