summarylogtreecommitdiffstats
path: root/changelog
blob: b9b8ca9cf34aee56304bf3f4dd71e2fc407354ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
2020-02-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.2.0-1:
    Added MiniProfileBackground item type, which can be used for lootable, transferable and matchable types in the config (#1624).
    Fixed a rare bug which could result in ASF wrongly interpreting marketable/tradable items (#1622).
    Latest ASF-ui with new features, improvements and bugfixes.
    Updated localization provided by our community.
    Usual amount of other core improvements, optimizations and bugfixes.
    pkg: revert to generic dotnet dependencies (FS#65128 closed)
2020-01-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.1.7-2:
    pkg: explicitly depend on AUR dotnet binaries (FS#65128)
2020-01-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.1.7-1:
    Added two new item types: Sticker and ChatEffect. Those can be used for lootable, transferable and matchable types in the config - #1567, #1559.
    Added loot% and transfer% commands.
    Fixed swagger not rendering correctly models schema in our IPC interface since .NET Core 3.0 upgrade.
    Latest ASF-ui with new features, improvements and bugfixes.
    Updated localization provided by our community.
    Usual amount of other core improvements, optimizations and bugfixes.
    pkg: ASF-ui is an optional dependency
2019-12-18 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.1.4-2:
    pkg: restore ASF-ui functions (thanks to Lucki)
2019-12-17 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.1.4-1:
    Single file publish has been disabled also on Unix OSes due to issue #1544, fixing ASF running under multiple users. Sadly it probably won't come back in the near future.
    Fixed generic-netf variant not working properly under mono since HomeDirectory enhancements done as part of 3.1 runtime upgrade.
    Fixed custom plugins not working by default with trimmed OS-specific ASF builds. OS-specific builds remain trimmed, but now come with the minimum required assemblies to run the required plugins initialization.
    Latest ASF-ui with new features, improvements and bugfixes.
    Updated localization provided by our community.
    Usual amount of other core improvements, optimizations and bugfixes.
    pkg: simplified messages displayed in journald by dropping redondant time and process id
2019-12-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.1.3-1:
    [!] ASF is now based on .NET Core 3.1 runtime.
    [!] OS-specific packages are now trimmed and bundled.
    Added Steam Winter Sale 2019 with appID of 1195670 to sales blacklist.
    Fixed small regression introduced in V4.1.0.7 related to friend requests plugins module.
    Latest ASF-ui with new features, improvements and bugfixes.
    Updated localization provided by our community.
    Usual amount of other core improvements, optimizations and bugfixes.
    pkg: switch from binaries to compiling source code
    pkg: asf is now identified as such in the logs instead of the generic 'dotnet'
2019-12-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.0.7-1:
    Added MarkBotMessagesAsRead to BotBehaviour (#1482).
    Improved redeeming in Forwarding + Distributing scenarios (#1504).
    Latest ASF-ui with new features, improvements and bugfixes.
    Updated localization provided by our community.
    Usual amount of other core improvements, optimizations and bugfixes.
 2019-11-07 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.0.3-2:
    pkg: preserve staticlibs (*.a) files
2019-11-07 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.1.0.3-1:
    [!] ASF V4.1 opens a new minor milestone due to NET Core 3.0 runtime upgrade.
    Version property of /Api/ASF and /Api/ASF/Update IPC endpoints is now a string due to .NET Core changes. This is a breaking change for those that are using it.
    Fixed a very rare situation in which some items or games to idle could be doubled.
    Fixed Forwarding not always working properly with RateLimited bots (#1460).
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
    pkg: switch to the smaller 'unzip' for ZIP64 support
2019-09-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.4.3-1:
    ASF's default logging was enhanced to follow ${currentdir}, which results in log.txt and logs directory respecting used --path, as opposed to always being in the program's directory. If you're using custom logging config, you might want to reflect this change.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-09-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.4.2-1:
    Improved MatchActively feature, ASF will now also match Fair bots when deemed appropriate (ref: #1375, #1377).
    Added AssumeWalletKeyOnBadActivationCode option to bot's RedeemingPreferences, as well as AssumeWalletKey r^ command options in regards to Steam wallet code changes (ref: #1358).
    ASF will now automatically restart its IPC interface on IPC.config changes (ref: #1349).
    Fixed potential issue with IdleRefundableGames: false which could cause valid games to be skipped.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
    [Deprecation] Functions deprecated in the previous release have been removed.
    pkg: use packages hooks for creating user and owning dir
2019-08-01 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.3.9-1:
    ASF will now attempt to split long Steam messages on newline if possible (ref: #1329).
    ASF will now keep up to 10 past log files in logs directory for archival purposes. As usual you can modify this behaviour through custom NLog config.
    ASF now includes enhanced logic for excluding invalid games from being idled (ref: #1299).
    It's now possible to specify --path command-line argument also as ASF_PATH environment property (ref: #1316).
    Enhanced SteamParentalCode usage, ASF can now verify whether the code is needed and whether the code is correct. It can also generate the code automatically in limited circumstances.
    Rewritten and improved addlicense command, which now has a distinction between apps and packages, see licenses argument.
    Rewritten and improved owns command, which now allows to query apps, packages, names and regexes, see games argument.
    Fixed SteamParentalCode not working due to recent Steam breaking change (ref: #1339).
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
    [Deprecation] IPC's /Api/Command/{command} has been rewritten into /Api/Command with JSON body, check swagger spec for more details (ref: #1314).
2019-07-02 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.2.7-1:
    Added reset command (ref: #1290).
    Small improvements in regards to InvalidPassword/RateLimitExceeded login attempts.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-06-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.2.2-1:
    Fixed a regression of possible garbage console output on unix machines, introduced in V4.0.2.1.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
  * 4.0.2.1:
    It's now possible to use custom NLog.config in declared --path (ref: #1250).
    Small improvements in regards to RateLimited logging procedure (ref: #1219).
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-05-05 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.1.9-1:
    Improvements to ASF's networking code, stability enhancements.
    Small improvements to ASF's compatibility with Steam family sharing.
    ASF will now wait up to a minute when you've just finished playing, to allow you switch games more easily and overcome brief network issues.
    It's now possible to provide --cryptkey also through environment variable (ref: #1207).
    Fixed non-intended behaviour of update process that could delete subdirectories in config and plugins folders. The fix will apply from this version onwards.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-04-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.1.4-1:
    ASF will now refuse to launch the second process for the same working directory.
    Further corrected bots order in Distributing redeem (ref: #1151).
    Fixed possible trading lock when using SendOnFarmingFinished (ref: #1171).
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-03-07 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.1.0-1:
    ASF will now discover plugins also from a custom --path directory.
    ASF will now provide feedback during processing the command on Steam chat (#951, #1114).
    ASF now includes interactive command console which can be a very convenient way of executing commands.
    Distributing redeeming preference will now proceed from current bot onwards, as opposed to always proceeding from the first bot (which is still used by Forwarding).
    Added bgr command.
    Fixed one more variant of invalid ASF 2FA device identificator.
    Fixed regression introduced around V4 which caused NRE when using SteamTarget with custom NLog config.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
    [Deprecation for plugin creators] Commands.Response() changed its signature, you might need to recompile your plugins if you're making use of this function.
2019-02-08 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 4.0.0.5-1:
    [!] ASF now comes with a plugin system, powerful enough to justify opening a new major ASF V4 version. Despite the version bump, there are no breaking changes compared to V3 and all V3 setups will update to V4 without issues.
    ASF is now aware of Steam items rarity, therefore features like SteamTradeMatcher or MatchActively will now take them into account and find matches only across the same rarity. This affects MatchableTypes of Emoticon and ProfileBackground.
    Added SaleItem, Consumable and ProfileModifier Steam item types, which can now be specified e.g. in LootableTypes. This also means that they're no longer Unknown, as per previous ASF releases.
    Added support for certain normally-broken 2FA deviceIDs that were deemed as invalid in the previous release.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2019-01-08 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.2.2-1:
    Added warning for running excessive number of bot instances.
    Increased default value of ConnectionTimeout from 60 to 90.
    It's now possible to loot/transfer contextID higher than 255 (ref: #990, #1001).
    Experimental improvements towards session checking code which might improve overall network stability.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2018-12-15 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.1.7-1:
    [!] Updated .NET Core runtime from 2.1 to 2.2. As usual, generic users are reminded to update their runtimes, OS-specific users are covered by us, no prerequisites changes.
    Further MatchActively improvements:
        The code is now aware of non-tradable items and will properly try to match tradable ones in order to create a matching sum. Previously ASF operated on tradable items exclusively.
        The code is now aware of non-responding bots and upon detection of missed trade, will not attempt to match the bot during remaining rounds.
        The code now properly resumes matching that was cut in the middle while creating another trade offer.
        Various other small logic-related improvements and bugfixes.
    Added Steam winter sale 2018 to built-in blacklist.
    Increased default value of WebLimiterDelay from 200 to 300 due to more harsh Steam restrictions.
    Fixed redeem command not working properly with Steam wallet codes (ref: #957).
    Fixed InventoryLimiterDelay not being applied properly to inventories with more than 5000 items.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
2018-12-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.1.4-1:
    [!] Added MatchActively feature to bot's TradingPreferences. Visit wiki for more info.
    Added nickname to API bot output.
    Added level command (ref: #946).
    BGR now also supports keys-only structure for import.
    Fixed wrong process start time on generic-netf variant ran with mono.
    Further web session-related improvements.
    Our swagger IPC API documentation now uses OpenAPI 3.0 standard (previously: 2.0).
    Removed loot& command as it was deemed entirely unnecessary.
    Latest ASF-ui with new features, improvements and bugfixes.
    Usual amount of other core improvements, optimizations and bugfixes.
    [Deprecation] Features deprecated in V3.4.0.4 have entered stage 2 and got removed.
2018-11-09 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.0.7-1:
    [!] Implemented extra logic to session validation code which has a potential to fix various request failures that people have reported recently. This was needed due to Steam change that rendered previous logic partially obsolete.
    Added balance command (ref: #935).
    Misc updates to ASF API, all Bot calls support botNames now, those that didn't before got their response type updated to accomodate this, refer to swagger for more details.
    Misc updates to swagger, the frontend now allows you to use IPCPassword during execution of API calls.
    ASF-ui updates with new features, improvements and bugfixes.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-11-01 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.0.5-1:
    We've improved our update process according to feedback of users that encountered some problems. If something doesn't work, we recommend to download this release (or newer) manually and copy over config directory. Not a lot of people got affected by this problem, so if everything works for you, you don't need to do anything.
    Fixed restart command that we accidentally made to work the same as exit during our huge kestrel refactor, whoops (ref: #932).
    Synced ASF-ui to latest release which should fix some issues that people have reported.
    Other misc code improvements, optimizations and bugfixes.
2018-10-31 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.4.0.4-1:
    [!] We've moved ASF project under JustArchiNET GitHub organization. This change should be mostly transparent for you as old URLs redirect appropriately. Only web config generator is no longer accessible under old URL, we've already updated all references (on wiki and alike). If you're using URL to our repo in your own projects, you might want to update them.
    [!] We've rewritten our IPC interface from HttpListener to KestrelHttpServer (ref: #761).
        Kestrel http server is modern drop-in replacement for legacy and far more basic HttpListener that we've used until now. IPC API and IPC GUI (now ASF-ui) continues to work like before.
        This change has dramatically improved ASF's code maintenance in regards to IPC routines. Our new code is very clean and efficient, allowing further development of IPC with ease.
        Kestrel comes with a lot of under-the-hood improvements in regards to IPC, especially compatibility, stability and performance improvements. Some of them include support for ETag, modern response compression algorithms (such as brotli) or increased compatibility by implementing all modern RFCs.
        We've slightly improved our CORS policy. ASF API now allows cross-origin resource sharing only when IPCPassword is set. See wiki for details.
        It's now possible to use IPC with custom base path (ref: #840).
        It's now possible to run IPC with https natively.
        Removed IPCPrefixes global config property, listening addresses are now handled by Kestrel config directly.
        A lot of other improvements related to performance, compatibility and stability.
    [!] Breaking changes in ASF API:
        Documentation of ASF API has moved to swagger, which apart from delivering that, also includes far easier ASF API access and other benefits. It's now possible to programmatically check exact definition of all ASF API endpoints.
        /Api/Bot/{bot} now returns a name-bot map (previously: array of bots).
        /Api/Bot/{bot} no longer uses SteamID for online status, there is IsConnectedAndLoggedOn for that now.
        /Api/Log has moved under /Api/NLog.
        /Api/GamesToRedeemInBackground/{bot} has moved under /Api/Bot/{bot}/GamesToRedeemInBackground.
        There are other small changes related to error reporting and similar, but nothing that should break existing apps.
        ASF API has gained a lot of new endpoints that are supposed to replace commands in long-run. New /Api/Bot/{bot}/Pause is one of those. Refer to our new swagger doc for details.
    [!] IPC GUI has been replaced by ASF-ui (aka "IPC GUI v2") built on top of new ASF API:
        ASF-ui has become a separate project under ASF. It has its own flow of development - you can post your bug reports, suggestions, pull requests and other questions in that place.
        ASF-ui is still in heavy development, so bugs and fixes are to be expected. Given time, we hope to see a fully-featured web GUI that will fully deprecate the use of commands and improve user experience, perhaps to the point of having its own ASF GUI release.
        ASF comes with latest version of ASF-ui included at the time of release.
        It's now possible to use your own IPC-ui frontend (instead of ASF-ui) by using --path command-line argument and putting www directory inside (ref: #915).
    Added transfer@ and transfer^ commands (ref: #908, #911).
    Default value of SteamProtocols was changed from 5 back to 7 due to fixing issue #882.
    Fixed SteamTradeMatcher logic flaw that could interpret some valid neutral+ trades as bad.
    Fixed IdleRefundableGames value change not taking effect until ASF restart (ref: #912).
    Removed default config files, ASF can now work without ASF.json being present. Full JSON structure is still available on the wiki for those that would prefer to generate configs manually, everybody else overwrites those files anyway. You may want to delete example.json and minimal.json manually from your config directory.
    Removed <Modes> argument from transfer commands, added TransferableTypes bot config property as drop-in replacement.
    [Deprecation] SteamParentalPIN bot config property is now available under SteamParentalCode with one subtle difference - null is now treated as no PIN while 0 as PIN provided during update (In old property it was the other way). We needed this change for ASF-ui. ASF will map old logic during first stage of deprecation.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-09-06 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.3.0.6-1:
    Added games cache to owns command in order to speed up consecutive checks. Cache is transparent and automatically invalidated on new licenses added to the account.
    AcceptGifts setting now also handles steam wallet gift cards (ref: #885)
    Temporarily removed UDP protocol from default SteamProtocols due to issue #882.
    Fixed POST /Api/Bot IPC API endpoint with non-default PasswordFormat that could emit wrong SteamPassword field in generated config.
    Fixed ASF still replying to commands when being run with OnlineStatus of 0 due to wrong logic of Steam network.
    IPC GUI bugfixes, new features and other improvements.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-08-12 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.3.0.3-1:
  [!] Added support for new Steam chat.
        ASF will now listen to group chat commands only on chat of the SteamMasterClanID chat (and not any chat it was invited to like how it worked before).
        Added MarkReceivedMessagesAsRead to BotBehaviour bot config property.
        Added SteamMessagePrefix global config property.
        Added ChatGroupID to SteamTarget logging target.
        Removed HandleOfflineMessages bot config property and entire offline messages logic (use new invisible OnlineStatus for that).
        Rewritten old chat logging functionality into new LogEventInfo-based chat logging module.
        A lot of other compatibility changes/improvements regarding support of new Steam chat, such as making use of new internal API endpoints, also in private chat.
    Regex pattern r! in ASF commands is now case-sensitive (due to bot names being case sensitive too).
    Added BuildVariant to GET /Api/ASF IPC API call (ref: #860).
    Added GET/DELETE /Api/GamesToRedeemInBackground IPC API call (ref: #856).
    Fixed SteamTradeMatcher logic that could lead to accepting bad trades in specific circumstances (ref: SC).
    Fixed HistoryTarget not exposing logs when being used with custom NLog configuration (especially regarding GET /Api/Log IPC API call).
    IPC API fixes and improvements (ref: #868).
    IPC GUI improvements, new functionalities and bugfixes.
    [Deprecation] Features deprecated in previous release have entered stage 2 and got removed.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-07-15 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.2.0.5-1:
    [!] Implemented temporary workaround for linux-arm users regarding CoreCLR #18486 segfault. Until it's fixed, linux-arm variant will target .NET Core 2.0.
    ASF commands now support a regex for <Bots> argument (ref: #841).
    Added loot@ command (ref: #826).
    Added two new farming orders: MarketableAscending and MarketableDescending (ref: #832).
    addlicense command will now prefer activating subID over appID in case of a number conflict.
    Improved unpack command in terms Steam networking issues.
    Fixed a race condition in ASF code that could result in BGR process being called several times for the same batch of keys.
    [Deprecation] DismissInventoryNotifications bot config property is now a part of BotBehaviour and not a standalone setting. ASF remains compatible with old behaviour during first stage of deprecation.
    [Deprecation] Removed FarmingOrder bot config property in favour of new FarmingOrders property that supports multiple arguments and fixed order. ASF remains compatible with old behaviour during first stage of deprecation.
    [Deprecation] Features deprecated in previous release have entered stage 2 and got removed.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-06-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.2.0.2-1:
    [!] Upgraded .NET Core runtime from 2.0 to 2.1 (ref: #799, #804).
    Added generic-netf ASF variant (ref: #806).
    Added OnlineStatus bot config property.
    Added Steam summer sale 2018 with ID of 876740 to SalesBlacklist (ref: #809).
    Upgraded default value of SteamProtocols from 3 to 7 due to #612 issue being resolved.
    Fixed GamesPlayedWhileIdle not being activated when using permanent pause command.
    Fixed first key from new queue being skipped with Distribution when running out of bots in redeem command (ref: SC)
    Usual amount of other code improvements, optimizations and bugfixes.
    [Deprecation] Removed BackgroundGCPeriod global config property in favour of new GCLatencyLevel setting available in .NET Core 2.1. ASF will still enable old behaviour during first stage of deprecation.
    [Deprecation] Removed FarmOffline bot config property in favour of OnlineStatus. ASF will still map FarmOffline: true to OnlineStatus: 0 during first stage of deprecation.
2018-05-28 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.3.4-1:
    Fixed ASF being unable to unlock parental accounts due to misc Steam change.
    Fixed BGR crash over BadActivationCode keys.
    IPC GUI improvements, optimizations and bugfixes.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-05-26 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.3.3-1:
    [!] Fixed auto-update in generic ASF variant not working properly since V3.1.2.9. Please update manually to this release if you're running generic ASF variant with auto-updates enabled. OS-specific packages are not affected and will update as usual.
    ASF will now properly keep original whitespace characters when joining out-of-range arguments in string-based commands (ref: group).
    Added privacy command (ref: #794).
    Fixed IPC GUI not working correctly when custom --path is given (ref: #795).
    Fixed bot-less !start command not being recognized.
    Further condensated deprecation policy to a total of 2 stages.
    Next stage of deprecation for features marked as obsolete in the previous stable release.
    IPC GUI improvements, optimizations and bugfixes.
    Usual amount of other code improvements, optimizations and bugfixes.
    package: alter systemd services to comply with --server deprecation
2018-05-15 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.2.9-2:
    package: add missing dependencies for OS specific releases
2018-05-13 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.2.9-1:
    Implemented new deprecation policy which will make future ASF transitions easier.
    Added WebLimiterDelay global config property (ref: #764).
    Added WebProxy, WebProxyPassword and WebProxyUsername global config properties.
    Added misc Trace logging info related to receiving donation trades.
    Added a workaround for a very stupid profile redirection issue.
    [Deprecation] IsBotAccount is now splitted into independent BotBehaviour bot config property settings. If you'd like to use old IsBotAccount: true behaviour, use BotBehaviour: 7 instead. ASF will automatically map IsBotAccount: true to BotBehaviour: 7, during first stage of deprecation.
    [Deprecation] Removed --server command-line argument. Use newly-introduced IPC global configuration property instead. ASF will still map --server to IPC: true during first stage of deprecation.
    [Deprecation] Running ASF with IPC enabled no longer implies --process-required command-line argument. If you'd like to follow old behaviour, declare --process-required yourself. ASF will still imply --process-required when --server is used, during first stage of deprecation.
    [Deprecation] Removed --service command-line argument by splitting it into three independent options: --no-restart, --process-required and --system-required. You should declare the ones you need (including all three if you'd like old behaviour). ASF will still map --service to all switches above during first stage of deprecation.
    Misc BGR improvements (redeemed games are included in response now, in addition to original name).
    Usual amount of other code improvements, optimizations and bugfixes.
2018-05-12 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.2.0-2:
    package: use OS specific release when appropriate
    package: add message about config paths on new installations
    package: disable logging to file on new installations
2018-04-11 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.2.0-1:
    Fixed latest Steam privacy breaking change that affected STM-related settings, including ASF STM public listing.
    Misc amount of other code improvements, optimizations and bugfixes.
2018-04-06 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.1.9-1:
    [!] Re-enabled link-time optimizations, which results in smaller overall ASF size (especially in OS-specific variants).
    IPC GUI improvements, new features, optimizations and bugfixes.
    BGR improvements (more verbosity, used and unused output files).
    Added CommandPrefix global config property.
    Fixed V3.1 regression that made SteamTarget no longer possible to be declared (ref: #765).
    Changed default value of SteamProtocols from 1 to 3 due to #186 issue being resolved.
    Removed obsolete GET /Api/Command IPC endpoint.
    Usual amount of other code improvements, optimizations and bugfixes.
2018-03-07 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.1.0-1:
    [!] Fixed recent Steam breaking change regarding ASF 2FA confirmations (yes, for the second time).
    IPC GUI improvements, new features, optimizations and bugfixes.
    ASF HttpClient (http stack) was rewritten for better compatibility and performance regarding session validation. This further reduces amount of requests, memory consumption, network bandwidth and CPU usage for all active bots.
    ASF FileSystemWatcher (configs auto-reload) was rewritten for better compatibility and stability. It also supports watching for all file extensions now, which is important for new *.keys recognition.
    Added background games redeemer feature, together with /Api/GamesToRedeemInBackground IPC endpoint.
    Added GamesCount property to ASF STM listing.
    Added IdlePriorityQueueOnly bot configuration property.
    Added IPC anti-bruteforce mechanism when IPCPassword global configuration property is used.
    Rewritten IPC /Api/Type endpoint in order to include more data.
    Improved /Api/ASF IPC endpoint with a possibility of fetching/editing GlobalConfig.
    Improved !owns command that now returns total bots owned data on per-game basis.
    Removed IPCHost and IPCPort properties, added IPCPrefixes that allows specifying multiple IPC listening addresses. This allows you to listen e.g. on both IPv4 and IPv6 local addresses, without exposing external interface. Previously it wasn't possible.
    Fixed ASF wrongly detecting Complimentary packages as refundable.
    Fixed AutoSteamSaleEvent trying to send requests when bot is not running.
    Fixed ASF idling only up to 31 (and not 32) games when custom name is used.
    Fixed ASF improperly rejecting trades from people with trade hold if they asked for winter/summer sale non-cards items.
    Major amount of other code improvements, optimizations and bugfixes.
    package: scripted noextract
2018-02-08 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.0.1-1:
    Turned off linker optimizations in OS-specific builds due to a few more bugs that need correction.
    Fixed a few IPC GUI-related issues and exceptions.
    Small amount of other code improvements, optimizations and bugfixes.
2018-02-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.1.0.0-1:
    [!] Fixed Steam breaking change that made ASF 2FA unable to fetch confirmations in all previous versions.
    [!] Added alpha release of upcoming IPC GUI.
    Added new IPC API endpoints: /Api/ASF, /Api/Log.
    Added new HistoryTarget NLog logging target for internal ASF usage.
    Further optimized the size of OS-specific builds.
    Usual amount of code improvements, optimizations and bugfixes.
    package: added HistoryTarget to NLog.config
2018-01-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.5.9-1:
    Fixed V3.0.5.7 regression that could lead to potential ASF crash in OS-specific variants.
2018-01-13 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.5.8-1:
    Added !loot^ command (ref: #727).
    Added ConfirmationsLimiterDelay global config property (ref: #728).
    Previously undocumented loot switch is now documented under !loot& command.
    !play command now accepts custom name to display (optionally also with idling other appIDs).
    Fixed a bug that could lead to games not being able to be idled when IdleRefundableGames: false was set (ref: #709).
    Fixed a possibility of trade offers not being initially parsed after disconnection.
    Fixed various issues related to HTML parsing under tr-TR language.
    Removed AutoDiscoveryQueue bot config property and added AutoSteamSaleEvent in its place, with enhanced functionality.
    Usual amount of code improvements, optimizations and bugfixes.
    package: replaced dotnet-sdk dependency with dotnet-runtime.
2017-12-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.5.5-1:
    [!] As initially stated, IPC was rewritten with new API endpoints and updated documentation in preparation for building IPC GUI. You will probably need to slightly modify your existing tools or scripts (ref: #667).
    Added workaround for Steam offline bug uncovered in V3.0.4.6 release.
    Added Steam winter sale 2017 to global blacklist (ref: #705).
    Added UseLoginKeys bot config property.
    Added IPCPassword global config property.
    Re-enabled Double Fine Adventure for idling with updated idling code.
    Fixed out-of-range arguments being always concatenated using , delimiter.
    Fixed !restart sent via IPC (ref: #700).
    Fixed CORS in IPC for non-local scripts (ref: #701).
    Removed mapping of _ character into space in !nickname and !owns commands, since ASF supports out-of-range arguments for a while now.
    Removed AutoUpdates and added UpdatePeriod global config property.
    Removed !api command, its functionality is now realized with appropriate API endpoint.
    Usual amount of code improvements, optimizations and bugfixes.
2017-11-21 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.4.7-1:
    [!] Fixed potential trading notifications loop (ref: #697).
    Further corrected above bugfix compared to V3.0.4.6 release.
    ASF OS-specific packages are now link-time optimized with monolinker, which removes unnecessary .NET Core runtime dependencies and results in smaller overall size.
    Improved OS language detection (ref: #688).
    Fixed a small regression in ArchiSteamFarm.sh script that affected old bash versions (ref: #683).
    Fixed missing logic for PasswordRequiredToKickSession (ref: #694).
    Usual amount of code improvements, optimizations and bugfixes.
2017-10-24 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.4.1-1:
    Removed CardDropsRestricted and added HoursUntilCardDrops bot config property with default value of 3 in its place.
    ASF is now available as official Docker container, check wiki for more info (ref: #661, #670).
    Added Changelog.html and ConfigGenerator.html helper links to the ASF folder.
    Added !ib, !ibadd and !ibrm commands.
    Heavily improved redeeming function that now will take in account RateLimited bots and won't attempt to forward/distribute keys to them anymore, saving time and failing requests.
    Slightly improved code responsible for ensuring that SteamLogin and SteamPassword fields are valid.
    Slightly improved code responsible for accepting trades sent from SendOnFarmingFinished + ShutdownOnFarmingFinished bots.
    !update command will now properly state success and failure.
    Fixed quite important regression introduced in V3.0.2.4 that could make ASF trying to redeem given key infinitely when there are no more bots to try.
    Fixed !resume not working for users with Operator SteamUserPermissions.
    Fixed priority idling queue not always working properly.
    Fixed ASF auto-update feature not working when custom --path was specified.
    Usual amount of code improvements, optimizations and bugfixes.
2017-10-11 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 3.0.3.0-1:
    [!] Fixed wrong SteamTradeMatcher dupes logic (ref: #657).
    ASF Windows variant now includes (once again) proper icon. Other variants might make use of ArchiSteamFarm.ico that is now added to the release.
    Patched up WebSocket SteamProtocols option not working correctly on Windows 7 SP1.
    IPC will now follow standard alphabetical bot sorting order when used without target bot instance.
    Usual amount of code improvements, optimizations and bugfixes.
    package: refactored for v3
    package: default logging now done in /var/log/asf.log
    package: removed legacy config migration
  * 3.0.2.8:
    Extra out-of-range command arguments are now joined into the last one.
    ASF Trace logging will now also log echo messages (ref: #653).
  * 3.0.2.7:
  * 3.0.1.9:
    Fixed a small regression introduced in 3.0.1.8 that could cause infinite relogin if GamesPlayedWhileIdle was enabled (ref: #623)
    Fixed ASF not always (re)starting farming after getting disconnected.
    Decreased default ASF memory usage by re-enabling old workstation GC, visit high-performance setup if you'd like to keep using server GC.
    Misc code improvements, optimizations and bugfixes.
  * 3.0.1.8:
    Fixed a small regression introduced in 3.0.1.5 that caused GamesPlayedWhileIdle and CustomGamePlayedWhileIdle not always being triggered.
    Improved reliability of CustomGamePlayed* display order.
    Improved reliability of having IdleRefundableGames disabled.
    Misc code improvements, optimizations and bugfixes.
  * 3.0.1.6:
    [!] ASF now runs on .NET Core, see V3 migration. You might be also interested in updated wiki sections, such as compatibility.
    Added support for automatic Steam discovery queue, AutoDiscoveryQueue bot configuration property (ref: #580).
    Removed !redeem^ and !redeem& commands. Re-added !redeem^ command that requires redeeming mode now (ref: #542).
    Removed WCFHost, WCFPort and WCFBinding global configuration properties.
    Added BackgroundGCPeriod, IPCHost and IPCPort global configuration properties.
    Added MatchableTypes bot configuration property.
    Added IdleRefundableGames bot configuration property (ref: #522).
    Added Random, RedeemDateTimesAscending and RedeemDateTimesDescending to FarmingOrder bot configuration property.
    Added BadgeLevelsAscending and BadgeLevelsDescending to FarmingOrder bot configuration property (ref: #510).
    Added Double Fine Adventure (402590) to global blacklist.
    Added !iq, !iqadd and !iqrm commands (ref: #545).
    Added !pause& command (ref: #509).
    Added !unpack command (ref: #537)
    Added !transfer command (ref: #609)
    Fixed ASF not aborting farming in Complex mode when getting disconnected from Steam network.
    Fixed ASF sending multiple trades instead of one when multiple events arrive (ref: #583).
    Fixed ASF attempting to initialize ASF 2FA time without network connectivity (ref: #598).
    Greatly improved ASF logic as in when to check badge pages (no more useless checks after games switching)
    Increased default value of IdleFarmingPeriod global configuration property from 3 to 8.
    GiftsLimiterDelay will now also apply to !redeem, !owns and !addlicense requests (ref: #577).
    Forwarding RedeemingPreferences will now also respect SteamUserPermissions.
    ASF will now automatically include your trading token and MatchableTypes if you participate in our public listing.
    !owns command will now also state extra owned bots count (ref: #564).
    Gigantic amount of code improvements, optimizations and bugfixes.
2017-07-10 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.3.2.0-2:
    package: solved a bug in systemd-sysusers by removing an empty line
2017-06-23 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.3.2.0-1:
    Added !stats command.
    Added Steam Summer Sale 2017 badge with appID of 639900 to global blacklist.
    Added workaround for possible ASF-Service crash (ref: #573).
    Fixed small regression introduced in V2.3.1.7 that could make bot ignore valid commands if user didn't have access on that specific bot (proxy scenarios).
    Misc code improvements, optimizations and bugfixes.
  * 2.3.1.8:
    ASF will now follow common *nix convention and ignore config files starting with a dot (ref: #554).
    ASF will now respect permissions when distributing/forwarding keys and won't send keys to bots that given user doesn't have access to.
    ASF will now try to avoid using HandleOfflineMessages if it can be sure that there is no offline message from any user permitted to use ASF commands, potentially making it possible to use for primary accounts.
    !pause command will now properly deactivate also GamesPlayedWhileIdle.
    Improved ShutdownOnFarmingFinished that previously didn't work properly with 0 IdleFarmingPeriod (ref: #557).
    Improved Steam message splitting logic that should now always arrive in proper order when Bot is forced to split the message because of its size.
    Fixed ASF attempting to start broken (config/database) bots.
    Further fixed WCF maximum message length (ref: #484).
    Usual code improvements, optimizations and bugfixes.
  * 2.3.1.4:
    Added workaround for recent Steam bug that could result in commands response duplication when using HandleOfflineMessages.
2017-05-05 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.3.1.3-1:
    Fixed a small regression introduced in version 2.3.0.9 that could cause !redeem failures to be always displayed as Fail.
    Improved !redeem statuses by adding extra internal Steam network result on top of existing purchase result. OK/NoDetail looks much better than NoDetail alone 🙂.
2017-04-30 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.3.1.2-1:
    [!] ASF now requires Mono in version 4.8 or higher (Linux / OS X, ref: #529).
    Added !bl, !bladd and !blrm commands (ref: #515).
    !owns and !nickname commands in given bots versions can now make use of space character in query string.
    Fixed !pause command not working when user had "only" Owner permission (ref: #512).
    Fixed Steam wallet code redeem error that resulted in Timeout instead of resulting in proper error status.
    Fixed potential STM logic exploit that could result in accepting non-neutral+ trades (ref: 4e1a032).
    Lowered required permission for accepting a friend invite, from Operator to FamilySharing.
    Improved compatibility of configs auto-reload with text editors that delete a file prior to writing to it (ref: #520).
    Improved concurrent inventory calls (ref: 8c0a100).
    Highly optimized function responsible for getting trade offers (ref: a6c4483).
    Improved translation of various TimeSpan parts in many languages, which now is translated dynamically based on culture and resulting number.
    Major code improvements, optimizations and bugfixes.
2017-03-29 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.3.0.5-1:
    [!] Reworked permissions, this is a breaking change.
    [!] Changed behaviour of !api command, this is a breaking change.
    Added !api <Bots> command (ref: #485).
    Added !nickname command.
    Added extra workaround for invalidating old trades.
    Fixed ASF compilation on OS X, also added OS X as a test platform to our Travis CI.
    Fixed ASF being able to trigger a rare Steam glitch that could lead to change of bot's nickname to [unassigned] when FarmOffline is set to false.
    Fixed recent Steam breaking change introduced by Valve that broke discovering of keys being redeemed in all ASF versions prior to 2.3.0.4 (ref: #508).
    ASF release is now compiled with latest Visual Studio 2017 by our AppVeyor CI (previously: VS15).
    Major code improvements, optimizations and bugfixes.
2017-03-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.2.3.2-1:
    [!] ASF is now smart enough to automatically choose proper appID for "Series" (video) apps with trading cards in them. Previously it'd be stuck farming wrong game (ref: #473).
    From now on running ASF will prevent Windows OS from going to sleep (ref: #457).
    Added extra logic for handling locked/disabled accounts (ref: #469).
    Added KeepMissingGames to RedeemingPreferences bot config property (ref: #470).
    Added back metadata publishing to all WCF bindings (ref: #448).
    Added !input command (ref: #476).
    DismissInventoryNotifications is now false by default.
    AcceptDonations can now be used together with DontAcceptBotTrades in TradingPreferences.
    Fixed ASF crash on invalid IdentitySecret/SharedSecret in ASF 2FA.
    Fixed SendTradePeriod not working properly.
    Fixed NLog issue that could lead to ASF crash when run via Mono in systemd environment without custom NLog.config (ref: #292).
    Fixed WCF refusing to handle too large !api responses.
    Updated statistics and privacy policy (ref: #450).
    Updated internal SteamKit2 code, this results in some misc changes of !redeem statuses. I took the opportunity and documented them in the FAQ while I was at it.
    Further unified ASF commands by adding bot identifier to all of them (ref: #468).
    Removed AcceptConfirmationsPeriod.
    Removed default entries in Blacklist global config property, since they're defined in hardcoded ASF GlobalBlacklist already.
    ASF will no longer accept SteamTradeMatcher trades without MatchEverything, if we can't fetch our inventory during parsing the trade.
    Major code improvements, optimizations and bugfixes.
2017-02-05 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.2.2.4-1:
    Added back overall ASF status to !status ASF (it was accidentally removed during rewrite).
    Added support for bot1..bot9 syntax when using multiple-target commands.
    Added !oa and !sa command aliases.
    ASF keyword in multiple-target commands is now case-insensitive.
    Added WCFBinding global config property.
    Added DontAcceptBotTrades option to TradingPreferences bot config property.
    Changed default value of TradingPreferences from AcceptDonations to None.
    Fixed possible ASF exit/crash on invalid Steam network responses.
    Fixed too early ASF crash by postponing services init until runtime check.
    Misc code improvements, optimizations and bugfixes.
2017-02-01 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.2.2.1-1:
    [!] Fixed network instability introduced in ASF V2.1.1.2. Coincidentally, this has nothing to do with network enhancements that arrived in V2.1.1.6. Huge thanks to Budgie and other folks helping me with their debug logs.
    Added OptimizationMode global config property.
    Added multiple bot targets for commands.
    Unified the format of ASF responses for easier strings manipulation. All responses should start with a newline now.
    Added SteamTarget NLog logging target, available with custom logging configs.
    Removed !*all commands, such as: !lootall, !statusall, !startall and !ownsall. Use newly-introduced multiple bot targets, such as !status ASF for previous !statusall.
    Fixed writing debug log for multiple bots at once.
    Misc code improvements, optimizations and bugfixes.
2017-01-30 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.2.1.6-1:
    [!] Added localization support for ASF.
    [!] Reworked ASF heartbeats.
    [!] ASF is now smart enough to automatically skip farming games that weren't released yet.
    Added CurrentCulture global config property for overriding default language.
    Added unused keys response to !redeem.
    Removed SteamApiKey, API key is now automatically fetched by ASF during runtime. Big thanks to @il-marc for initial implementation!
    Renamed HttpTimeout to ConnectionTimeout. New property is also responsible for several other types of timeouts, such as Steam network and heartbeats.
    Fixed potential exploit allowing attacker to trigger ASF error message.
    Fixed !addlicense and other store-based functionality not working properly for accounts restricted with SteamParentalPIN.
    Major code improvements, optimizations and bugfixes.
2017-01-04 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.2.0.5-1:
    [!] Removed ForwardKeysToOtherBots and DistributeKeys - it's unified under new RedeemingPreferences bot config property.
    [!] Added new LootableTypes bot config property.
    [!] IsBotAccount no longer controls looting foil cards, the responsibility now lies in newly introduced LootableTypes.
    Added rough approximation of expected farming time, to !status and alike (also API).
    Fixed statistics reporting not working on older versions of Mono.
    Fixed rare issue that could lead to ASF not connecting to Steam Network.
    Fixed ASF not parsing command-line arguments when running as a service.
    Removed ForceHttp global config property. For reasoning, see commit.
    Usual code improvements, optimizations and bugfixes.
    package: systemd-sysusers handles the user & group creation
2016-12-18 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.7.9-1:
    Switched Statistics STM listing to new protocol version (old one won't work anymore)
2016-12-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.7.8-1:
    Fixed issue that could lead to increased network instability in very rare case
  * 2.1.7.7:
    Fixed cross-OS WCF incompatibility between Mono and Windows
    Corrected WCFHost in ConfigGenerator
2016-12-16 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.7.6-1:
    [!] Enhanced Statistics by new features. Please review changes to our privacy policy.
    There is now public ASF-STM listing located here. You can read more about it in link above.
    WCFHostname has been renamed to WCFHost. Please review Configuration as default value was also changed to "127.0.0.1".
    ASF will now accept trade offers also from SteamOwnerID.
    ASF will now reject group invites when IsBotAccount.
    Added IsLimitedUser info to both !status and API.
    Added Steam Winter Sale 2016 to global and local blacklist.
    Fixed offline messages from family sharing users being ignored when in FarmOffline mode.
    Fixed making it impossible for family sharing users to play when GamesPlayedWhileIdle is being used.
    Fixed GamesPlayedWhileIdle with Paused CardsFarmer.
    Fixed very rare issue of ASF not detecting some games available for farming due to Steam fuckup.
    Major code improvements, optimizations and bugfixes.
2016-11-18 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.6.8-1:
    !addlicense can now also request free licenses from steam store (in addition to steam network).
    Fixed GamesPlayedWhileIdle for limited accounts.
    Usual code improvements, optimizations and bugfixes.
2016-11-13 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.6.7-1:
    [!] ASF will no longer attempt to farm limited accounts, as Valve put hard cards restriction on them recently.
    Added a few command aliases for !redeem variants.
    Added !pause^ command (sticky pause). This is how !pause worked before steam family sharing improvements introduced recently.
    Paused bot config property now works as sticky pause (like previously).
    Improved logging module in various ways - if you're using custom logging config, you might want to check it out. There are many internal improvements, but nothing visible for people using ASF default built-in config.
    ASF now includes new program icon, thanks to @stackia
    Usual code improvements, optimizations and bugfixes.
2016-10-31 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.6.4-1:
    Fixed ASF not restarting itself on !restart and likewise
    Other misc bugfixes
2016-10-28 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.6.3-1:
    Fixed ASF not shutting down when last Bot gets stopped.
    Fixed a possible race condition in callback handler function that could lead to some ASF exceptions.
    Fixed ASF not accepting trades from SteamMasterID when no TradingPreferences were chosen. Also added optional logic of accepting donation trades from ASF bots regardless of AcceptDonations enabled or not.
  * 2.1.6.2:
    [!] Added long-awaited support for Steam family sharing.
    [!] Added support for auto-reload of modified configs.
    [!] Improved trading module by replacing SteamTradeMatcher bot config property with TradingPreferences.
    Added !redeem& command.
    Added Paused bot config property.
    Added support for Steam wallet codes (through !redeem and likewise).
    Fixed logging in with SteamPassword containing non-ASCII characters.
    Major code improvements, optimizations and bugfixes.
2016-10-12 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.5.4-1:
    Fixed regression of LoginLimiterDelay being falsely ignored on non-ASF 2FA accounts.
    Misc code improvements, optimizations and bugfixes.
  * 2.1.5.3:
    Added !redeem^ command.
    Improved AcceptGifts - ASF now redeems gifts via request to Steam network (and not Steam community like previously).
    Fixed ultra-rare issue of ASF causing official steam client disconnection due to broken LoginID calculation done by Steam on some Linux OSes.
    Fixed HandleOfflineMessages not working with non-precise system clock (ASF will now allow up to 1 hour of difference between system time and Steam time, previously it was 1 minute).
    Fixed a possible ASF crash in !ownsall when one or more of the bots were not connected.
    Hopefully fixed ultra-rare ASF network deadlock as reported in #318.
    General code improvements, optimizations and bugfixes.
2016-08-29 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.4.5-1:
    Added !ownsall command.
    Improved SendOnFarmingFinished - ASF will now also initiate !loot on receiving new items (when not farming), and trades (always).
    ASF will now !loot foil trading cards only on IsBotAccount accounts.
    Further improved overall network stability by implementing heartbeat functions.
    Fixed ASF not recognizing games with more than 255 card drops remaining as available for farming.
    Fixed ASF not following smart redeeming when first account hits OnCooldown.
    Usual code improvements, optimizations and bugfixes.
    [ConfigGenerator] Properties are now being categorized for easier modifications.
2016-08-05 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.3.9-1:
    [!] Important ForwardKeysToOtherBots enhancements.
    [!] CardDropsRestricted is now true by default.
    Added new FarmingOrder bot config property, thanks to @stackia in #312 . Visit wiki for more info.
    WCF now supports metadata publishing, thanks to @stackia in #309
    ASF is now a little more verbose in various places.
    ASF will now restart farming (if needed) also when new games are added outside of ASF process, e.g. when you redeem a key through Steam Client.
    ASF will now always use alphabetical order when dealing with ForwardKeysToOtherBots or DistributeKeys.
    ASF will now warn you if you're using incompatible runtime.
    Major code improvements, optimizations and bugfixes.
  * 2.1.3.1-3:
    package & services : fix various bugs pertaining to --path
  * 2.1.3.1-2:
    package: config folder moved to /var/lib/asf
    service: rename ReadWriteDirectories to ReadWritePaths
    service: soft dependency on network.target
    service: add user service file
2016-07-24 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.3.1-1:
    It's now possible to use CustomGamePlayedWhileIdle and GamesPlayedWhileIdle at the same time, to play specific appIDs while showing custom status in Steam Network. Please note that the order of display is not guaranteed in this case.
    Added new CustomGamePlayedWhileFarming bot config property, which is possible thanks to above change. Visit Configuration for more info.
    Added support for --path command-line argument. Visit wiki for more info.
    Greatly improved efficiency of handling multiple 2FA confirmations by adapting newly introduced multi-confirm method introduced by Valve. Thanks to that, ASF can send just one request for accepting all confirmations, instead of accepting them one-by-one.
    Slightly improved internal cd-key validator to be case-insensitive and more precise.
    Slightly improved network throughput on Windows machines.
    Major portion of code improvements, optimizations and bugfixes.
2016-07-24 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.2.5-2:
    Updated source archive to solve a false-positive (see https://github.com/JustArchi/ArchiSteamFarm/issues/127#issuecomment-234313478)
2016-07-12 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.2.5-1:
    Fixed ASF crash related to being unable to execute WMI queries on machines previously affected by HackIgnoreMachineID.
    Removed old ASF 2FA V2.0 -> V2.1 converter, as stated in previous release.
  * 2.1.2.4:
    [!] Next ASF version will come without ASF 2FA converter capable of converting V2.0 formats into V2.1. If you didn't update your old ASF V2.0 yet, it's wise to do so.
    [!] Implemented new smart and persistent CMs list - ASF will no longer need to ask Steam network for list of CMs at startup, significantly improving startup time. The list is saved in ASF.db.
    [!] ASF logging module has been rewritten and is now based on NLog project. New module supports standard built-in ASF rules, as well as custom NLog configuration, in which you can define your own loggers, targets, rules and formats. Check out Logging section in the wiki to learn more.
    Removed LogToFile global config property, which is now always true unless ASF is running as a service. The file logging is now customizable through NLog and described in Logging section in the wiki.
    Updated internal SteamKit2 ASF library to version 1.8, improving stability and compatibility with Steam network.
    Removed HackIgnoreMachineID global config property. New SK2 version should solve the issue for all affected people that had to keep this property at true previously.
    ASF service is now available as ASF-Service.exe extra binary due to incompatibility with new repacking method. There is also new article on the wiki explaining how to run ASF as a service.
    ASF can now log it's messages also to event log, which is enabled by default when ASF is run as a service. You can override this through custom NLog config if you want to.
    Misc portion of code improvements, optimizations and bugfixes.
2016-07-08 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.1.8-2:
    Disable update notifications.
2016-07-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.1.8-1:
    Changed repack tool used by ASF (ILRepack -> LibZ) which should hopefully fix remaining AV false-positives.
2016-07-02 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.1.7-1:
    [!] ASF now supports SteamPassword also in encrypted form. Visit configuration for info about new PasswordFormat bot config property, as well as security for further explanation.
    Added GiftsLimiterDelay and MaxTradeHoldDuration global config properties. Visit configuration for more info.
    Added !lootall and !password commands.
    ASF can now become installed and run as a Windows service, thanks to @justin-gerhardt
    Commands are now case-insensitive (but bot names remain case-sensitive).
    Fixed rare Steam issue that could lead to ASF trying to redeem the same gift twice (thanks GabeN).
    Fixed rare Steam issue that could lead to ASF crash due to failure to log in, after successfully logging in (yes, you read it right - thanks GabeN).
    Fixed rare ASF issue that could lead to program crash during !redeem command when one or more bots had broken database.
    [ConfigGenerator] Added version check, CG will now ensure that it's running only with compatible version of ASF.
    Massive portion of code improvements, optimizations and bugfixes.
2016-06-24 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.0.7-1:
    Added !api command. More can be found on the wiki.
    Increased default value of LoginLimiterDelay from 7 to 10. It seems to solve some recent more aggressive Steam rate-limiting.
    Fixed incorrect calculation of same-type dupe values which could lead into accepting potentially non-neutral+ trades.
    Misc code improvements, optimizations and bugfixes.
2016-06-20 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.0.6-1:
    Fixed !2faok confirming only one confirmation at a time (2.1.0.5 regression)
    Divided !pause command into !pause and !resume
2016-06-20 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.1.0.5-1:
    [!] Incompatibility with previous versions of ASF - Bot's database will be converted from old V1 into new V2 format, which means that newly generated Bot's database will not run correctly with previous versions of ASF.
    [!] Removed support for linking new authenticator and delinking existing ones, effectively removing UseAsfAsMobileAuthenticator Bot config property and !2faoff command.
    Added support for SteamParental in 2FA sessions. New ASF 2FA uses existing ASF mechanism of SteamParentalPIN to unlock and operate on such accounts, no action is needed.
    Improved security of ASF 2FA - 2FA module will now only accept confirmations ASF directly creates, and not all of them. !2faok command is not affected and still accepts everything.
    Many internal optimizations, bugfixes, improvements and general code review of ASF 2FA.
    [!] Fixed a Steam issue that could lead to ASF not detecting that all cards were dropped already.
    ASF will now state current status of card drops (aka "X card drops remaining") when farming in solo mode.
    Massive portion of code improvements, optimizations and bugfixes.
2016-06-11 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.5.6-1:
    Added workaround for Mono bug 41701 affecting Mono runtimes 4.4+.
    Misc code improvements, optimizations and bugfixes.
2016-06-10 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.5.5-1:
    Hopefully fixed another Windows false-positive introduced in 2.0.5.4.
2016-06-09 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.5.4-1:
    [!] Added Steam Summer Sale 2016 with appID of 480730 to Blacklist and built-in GlobalBlacklist.
    [!] Implemented brand new event-based cards farming module.
    Changed default value of FarmingDelay from 5 to 15.
    Improved logic of restarting cards farming module on newly added games.
    Misc code improvements, optimizations and bugfixes.
2016-06-06 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.5.2-1:
    Added IsBotAccount bot config property.
    Added !version command.
    Fixed ASF not always resetting games played when farming got interrupted (e.g. with !pause command).
    Misc code improvements, optimizations and bugfixes.
2016-06-03 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.5.1-1:
    Fixed harmless error when account was not using SteamApiKey, introduced in 2.0.5.0.
  * 2.0.5.0-1:
    [!] Greatly improved primary accounts support and removed AccountPlayingDelay global config property.
    ASF will now ignore initial OnFarmingFinished() event when ShutdownOnFarmingFinished is set, and you've just !started this bot instance, allowing you to issue commands without much hassle. Every next event (including the one fired after IdleFarmingPeriod) will be honored.
    !update command will now ignore (override) AutoUpdates setting, allowing you to force ASF update while still being able to skip automatic ones (on program startup and every 24 hours).
    Fixed valid trades potentially being ignored in SteamTradeMatcher when user was overpaying with cards from the same game.
    Fixed wrong dupes calculation when Steam is talking crap and responding with NULL instanceID of items (thanks GabeN).
    Fixed ASF accidentally dismissing notifications related to profile comments.
    Massive portion of code improvements, optimizations and bugfixes.
2016-05-12 Gilrain <gilrain+libre.arch A_T castelmo DOT_ re>
  * 2.0.4.4-1:
    ASF now allows only one trade to be sent in SendOnFarmingFinished when account did not farm anything - this cuts spam related to sending trade every IdleFarmingPeriod, while still sending initial trade after connect.
    ASF now allows overpaying when SteamTradeMatcher is enabled.
    ASF no longer replies to given bot commands when bot instance could not be found and user is not SteamOwnerID.
    Slightly improved logic of selecting optimal Steam CM server to minimize network latency and improve network communication.
    Fixed ASF crash when trying to add new ASF 2FA authenticator with null SteamPassword.
    Minor code improvements, optimizations and bugfixes.
  * 2.0.4.1-1:
    ASF 2FA is now more resistant to steam quirks by implementing the same logic of try-retry as usual requests.
    Enhanced !status command which now also shows when bot is running in manual mode (such as !pause or !play).
    Enhanced !owns command which is now able to work also with private profiles, as long as you use SteamApiKey for given account.
    [ConfigGenerator] Graphical config generator now uses asterisks for hiding SteamPassword property.
    Major portion of code improvements, optimizations and bugfixes.
  * 2.0.4.0-1:
    Added new bot config property called SteamTradeMatcher with default value of false. As always, you can find more information in the wiki.
    Improved keys-detecting algorithm, which should greatly decrease amount of false-positives causing bot to redeem invalid cd-keys.
    Improved logic of !loot. ASF will now loot only trading cards (including foils) and boosters, instead of all steam community items (such as emoticons or backgrounds).
    When SendOnFarmingFinished is enabled, ASF will now also send trades when bot has nothing to farm.
    Code improvements, optimizations and bugfixes.
  * 2.0.3.4-1:
    Slightly modified logic of DistributeKeys, according to #199
    Added new global config property called AutoRestart with default value of true. As always, you can find more information in the wiki.
    Minor code improvements, optimizations and bugfixes.
  * 2.0.3.3-1:
    Fixed bot not respecting !stop command when initiated during AccountPlayingDelay or InvalidPassword waiting period.
    Fixed very rare bug which could lead to infinite loop (and 100% CPU usage) when bot would get disconnected from steam shortly after we told him to !redeem key and DistributeKeys was disabled (so that bot instance would try to redeem key in infinite loop).
  * 2.0.3.2-1:
    Removed experimental GUI app until it's ready to ship. I don't need people reporting issues for non-finished program.
    Small amount of code improvements, optimizations and bugfixes.
  * 2.0.3.1-1:
    [!] ASF Config Generator is now named ASF-ConfigGenerator.exe.
    [!] Added new, experimental GUI wrapper for ASF, which is named ASF-GUI.exe. Majority of the work has been done by @KlappPc, which made it possible. You're free to give it a try, but please keep in mind that it's not yet stable.
    Added Headless ASF config property. Check wiki for more info.
    Added proper support for handling very long steam responses (over 2048 characters). Bot will now split those messages and send in parts.
    Enhanced !owns command, it now accepts multiple appIDs and gameNames, you can also use mixed queries containing both. Visit wiki for more info.
    Fixed ASF not triggering shutdown with ShutdownOnFarmingFinished when account didn't have any games to farm right after starting.
    Fixed a very rare crash that could happen when refreshing a steam session.
    Fixed rare problem related to removing old binary after auto update.
    [ConfigGenerator] Fixed config save not being triggered when editing collections (such as GamesPlayedWhileIdle).
    Major portion of code improvements, optimizations and bugfixes.
    ASF now features rewritten internal WebBrowser based on latest ArchiBoT changes. New WebBrowser includes e.g. native support for automatic compression/decompression of web traffic, which greatly helps reading very long steam badge pages.
  * 2.0.2.4-1:
    Bots can now redeem multiple keys also via !redeem command. Visit wiki for more info.
    Added !2fano command, visit wiki for more info.
    Fixed misc bug related to redeeming of keys on offline bot instances.
  * 2.0.2.3-1:
    [!] ASF no longer includes support for converting old V1.0 XML bot configs into new V2.0 JSON format. If you still need to perform a conversion, then you should do that with previous stable ASF V2.0.1.9, or start making configs from scratch.
    ASF can now accept and redeem steam gifts, through new AcceptGifts bot config property. Visit wiki for more info.
    ASF now logs time spent on farming given appID in human-readable (hh-1:mm) form. You can use that info for deciding whether your account requires CardDropsRestricted.
    Added !help and !pause commands, visit wiki for more info.
    Greatly improved handling of session refreshes for primary accounts. ASF no longer requires a restart of steam client to handle session refresh (which also does not require interrupting of farming)
    Fixed very rare ASF crash caused by malformed bot databases.
    Fixed !exit and !restart commands throwing exceptions when executed via WCF.
    Major portion of code improvements, optimizations and bugfixes.
  * 2.0.1.9-1:
    [!] ASF now comes with graphical config generator - ASF-GUI.exe, which can be used for generating and managing ASF configs. The app also offers tutorial for new users, which should make ASF more user-friendly. Using the GUI app is totally optional and ASF does not require it in order to run properly.
    [!] ASF will now refuse to load standard example.json and minimal.json config files. You're supposed to make a copy of those files, not edit them. ASF Config Generator will also hide and ignore those files by default.
    Greatly improved efficiency of Complex algorithm by reading hours data directly from fetched badge pages (instead of checking every app page)
    AccountPlayingDelay can now be set to value of 0 which will shutdown bot instance when account is being used for playing elsewhere.
    WCFHostname can now be set to value of null, which will make ASF to ask you about the hostname on each startup.
    ASF will now automatically fix non-valid values, such as setting WCFPort to 0.
    Fixed !farm command being able to execute also on non-connected bot instances, it will now fail when given bot instance is not connected.
    Fixed ASF not exiting itself when done executing a command in WCF client mode.
    Fixed rare issue which made it possible for CardsFarmer module to restart already stopped bot instance
    Fixed !farm command not returning Done! output, which was especially problematic when used in WCF
    Debug mode now logs extra info about failed requests.
    Several code improvements, optimizations and bugfixes
  * 2.0.1.5-1:
    Added support for importing WinAuth to ASF 2FA. Check wiki for more info
    Added ForceHttp, LogToFile, SteamProtocol and SteamOwnerID global config properties. Check wiki for more info
    Increased default value of HttpTimeout from 30 to 60. If you need that change in your old ASF.json config, you'll need to do it yourself (ASF never edits configs)
    Added HackIgnoreMachineID global config property, which solves ASF being stuck after connecting to steam for some people. Check wiki for more info
    Improved ASF 2FA security - AcceptConfirmations() ASF 2FA requests executed by trading functions now accept only trading confirmations. !2faok and SendTradePeriod are still accepting all of them
    Added !owns command. Check wiki for more info
    Debug global config property in addition to debugging network traffic, also debugs SK2 module now.
    Fixed rare issue with ASF not disconnecting an account when asked to Stop()
    ASF logger now catches also unobserved (deep) exceptions, which should make debugging easier
    Several code improvements, optimizations and bugfixes. Logging in is much faster now