UNPKG

9.2 kBMarkdownView Raw
1### 1.1.3
2
3* No longer removes `User` table on re-importing a bot script into MongoDB.
4
5### 1.1.2
6
7* Fixes an issue with doing conversations with multiline replies.
8
9### 1.1.1
10
11* Fixes a warning using the `moment` dependency.
12* Additional error message for errors within custom functions.
13
14### 1.1.0
15
16* You can now configure the number of messages in the history that are checked when seeing if replies should be exhausted or not by using the `historyCheckpoints` option (thanks @Samurais!).
17
18### 1.0.6
19
20* Mongoose now uses the global Promise object to avoid a DeprecationWarning (thanks @Lewwwk!).
21* Cleanup and parse bin scripts now accept a MONGODB_URI environment variable for easy cleanup/parsing on Heroku.
22* Parse bin script also now accepts custom MongoDB connection params.
23
24### 1.0.5
25
26* The history field on the User model now retains 500 messages (up from 15) for logging purposes. It also is now an array of objects, rather than being an object of arrays, so we can more easily iterate over the history, and allows us to slice the array easily.
27* Removed mongoose-findorcreate and replaced with native mongoose options `upsert` and `new`.
28
29### 1.0.4
30
31* Fixes issue when using {clear} with inline redirects.
32
33### 1.0.3
34
35* Fixes issue with significantly large triggers (over 1024 bytes) not being serialised into Mongo.
36* Fact system import internals have been re-written.
37
38### 1.0.2
39
40* Performance improvement by another 20% or so by using Mongoose's lean queries, and skipping an extraneous query.
41* All the internal reply logic now uses async/await instead of callbacks.
42
43### 1.0.1
44
45* Fixes GH-317 by expanding custom concepts at parse time.
46* Removes unused field in User model.
47
48### 1.0.0
49
50We're very excited to push v1 into the wild, which marks the first major release of SuperScript! In this version, we've focused mainly on cleaning up the codebase, ensuring extensibility, and squeezing performance out of the runtime to ensure that your bots are nice and snappy.
51
52An overview of the big changes include:
53
54* Parsing is now lightning fast. We're looking at over 100x faster. 🔥
55* Replying is faster too, by over 10x. These two improvements are mainly thanks to some new logic in the normalisation step, which is now supported by the [bot-lang](https://github.com/bot-ai/bot-lang) repo.
56* More reliable trigger matching and reply exhaustion.
57* An easy-to-use API to set up SuperScript. No more dealing with setting up fact systems or topic systems yourselves: just set the relevant options and we take care of it for you.
58* A brand new [PEG.js](https://github.com/pegjs/pegjs) parser to parse bot scripts, allowing us to easily extend and modify syntax in the future, and be able to reliably inform you if you've written an invalid script.
59* Moved the fact system to Mongo to be completely independent of the file system and stateless. You can now run on Heroku, AWS, or other cloud services without fear of writing to a transient file system or syncing data between servers.
60* Re-written the code to take advantage of the latest ES6+ features.
61* Windows support! 🖥️
62* Closed over 50 GitHub issues, from topic redirection issues to capturing data.
63
64We've added some cool new features like:
65
66* We've added some new ways to define how replies should be chosen: `{ordered}`, `{random}`, `{keep}`, `{exhaust}` and `{reload}`.
67* Arguments to plugin functions are now JavaScript literals, so you can pass objects, arrays, numbers and so on to your functions.
68* We now support message plugin functions to run a plugin on every message, so you can attach extra properties to your messages like 'names' to use in later plugins.
69* You can now run multiple bots from different database URIs on a single server, and also run multiple bots from a single database URI using built-in multi-tenancy.
70* You can now customise the conversation timeout from the default of 5 minutes.
71
72We've also deprecated some of the old syntax. For the full list, see the [Upgrading to v1 Guide](https://github.com/superscriptjs/superscript/wiki/Upgrading-to-v1). Some of the more important points are:
73
74* The API to use SuperScript has changed dramatically. Now, you call `superscript.setup` and pass an `options` object.
75* The old tags like `~emohello` and `~emogreetings` are deprecated. Now, you'd use the plugin `^hasTag('hello')` to check if a user has said something like `hello`.
76* Questions no longer have types or sub-types. We're looking to improve this in the future.
77
78We really hope you like v1, and we're always open to new ideas, improvements, issues and pull requests. We already have some exciting things lined up for v2, and we hope this brings SuperScript closer to being the de-facto choice of human-like bot for developers! Join us on [Slack](http://superscript-slackin.herokuapp.com/) to talk about what we have planned and anything else bot-related.
79
80A big thank you to everyone who has contributed towards our first release. We couldn't have got there without you.
81
82The SuperScript Team
83
84### 0.11.26
85* Fix for GH-262. If a concept is captured we convert it to a non-concept. ^save() will now test for 3 arguments.
86* Fix for GH-259. Harden missing filter and plugin routes, warn louder and pass errors down if hit in topicRedirect.
87
88### 0.11.25
89* This continues to build out the debugging and logging, now redirects and respond functions are more clear.
90
91### 0.11.24
92* Added a new Google Hangout Client
93* Bubbled up the internal log to the client as `debug` on the reply object.
94
95### 0.11.23
96* Wrapped User Model Create to support schema or pre-existing.
97
98### 0.11.22
99* fix/enhancement - If you have OOB data it will now persist though topicRedirect(...), OOB data will also be merged together if you have added some before and after the redirect too.
100
101### 0.11.21
102* In custom function (plugins) you can now pass back an object instead of a string providing it contains a `text` or `reply` property. All other params well become OOB data.
103
104### 0.11.20
105* Pass clearConvo {CLEAR} back though topicRedirect
106
107### 0.11.19
108* Pass matchBit forward though redirect/respond/custom function
109* Pass extraScope forward though topicRedirect function
110* Pass extraScope forward though respond function
111* Pass extraScope forward though inline redirect
112
113### 0.11.18
114* Adds Telegraph Client
115* Feature GH-243 - Filter Input now supports captured input.
116
117### 0.11.17
118* Re-added nostay topic flag
119
120### 0.11.16
121* Fixed a regression in ^respond
122* Moved some console.log to debug.error
123
124### 0.11.15
125* Adds new directReply endpoint and more cheanup on msg
126
127### 0.11.14
128* Adds `bot` to scope, this will allow plugins to create users.
129
130### 0.11.13
131* Introducded a typo bug in 0.11.12 - fixed here
132
133### 0.11.12
134* Add new logging interface for better debugging.
135
136### 0.11.11
137* Change the custom function regex (again) This time allow `:`.
138
139### 0.11.10
140* Change the custom function regex (again) This time allow `$`.
141
142### 0.11.9
143* Remove leading spaces from reply.
144
145### 0.11.8
146* Nuke MessageScope before saving the object back to the history
147
148### 0.11.7
149* Allows `;` into custom function
150
151### 0.11.6
152* Freezes moongoose, hit rangeError bug reported.
153
154### 0.11.5
155* GH-240 - Added {END} and {CONTINUE} reply flags, but failed to pass them forward though topicRedirects this has now been fixed.
156
157### 0.11.4
158* GH-239 - Scope screep issues
159* New logging output - The logs are not JSON per line with a match array showing all matches. This was a signigant change under the hood requiring lots of cleanup.
160
161### 0.11.3
162* Allow even more characters into custom function (`(`,`)`, and `&`)
163
164### 0.11.2
165* Allow more extended characters into custom function (`-`,`'`, and `"`)
166
167### 0.11.1
168* Just a tiny change to unlock the normalizer version.
169
170### 0.11.0
171* Adds a new command `%%` for dynamic conversations (gh-206).
172
173This works by setting some state in a reply for example:
174```
175+ some input
176- some reply {key=value}
177```
178
179Then later in the conversation you can create a condition by one of three methods:
180```
181// trigger is assumed to be a wildcard
182%% (key === value)
183- now say this
184
185// setting a trigger
186%% (key === value)
187+ then match this
188- now say this
189
190// Set a collection of gambits
191%% (key === value) {
192 + then match this
193 - now say this
194
195 + or that
196 - now really say this
197}
198```
199The conversation state is whiped clean when you the topic changes.
200
201
202### 0.10.25
203* Adds a new {CLEAR} flag you can append to replies to kill the conversation loop. This will reset the conversation back to the topic level on the next input cycle.
204
205### 0.10.24
206* Fix for gh-236. In some cases custom plugins were firing multiple times.
207
208### 0.10.23
209* Bumps ss-parser and includes fixes to the matching, primary around min-max wildcards (gh-231, gh-224)
210
211### 0.10.22
212* Fix for GH-227 Have a custom function and system function on the same line killed the execution cycle becuase the system function was not found in the list of plugins
213
214### 0.10.21
215* Added scope per message in the reply Object.
216
217### 0.10.20
218* Add new plugin `getGreetingTimeOfDay`
219
220### 0.10.19
221* Fixes GH-223 with chunking disabled, commas might appear as extra args in custom functions
222* Fix for GH-221 Bumps ss-parser (where fix lives) modifies regex for category tilde.