-
official IRC support
-
improved API documentation
-
revamped and simplified credentials process. breaks compatibility with 0.1.x branch.
-
refactored session module into three separate files.
lib/sockethub/session-manager.js(the only external interface), and it's subclasseslib/sockethub/session/session.jsandlib/sockethub/session/platform.js -
revamped the
setprocess to use the platform name as the way to indicate where the credentials apply to. You no longer need to use thedispatcherplatform to set credentials. (issue #173) -
minor improvements to class structure throughout the code, to improve readability.
-
many performance optimizations.
-
bugfix: encryption key being lost after multiple sessions active. (issue #141)
-
util.redis now has specific support for hset and hget. (issue #140)
-
refactor
session.request()function for clarity. This function issues remoteStorage GETs. (issue #139) -
ClientManager has new method
movewhich moves a client object from one key lookup to another while preserving it's reference count. (lib/sockethub/client-manager.js) -
platform irc: change nick name. (issue #144)
-
platform irc: several additions announcing room activity.
-
bugfix: race condition were a disconnect could loose it's redis connection reference before it was able to disconnect. this was fixed but ensuring the websocket server had a unique disconnect callback for each connection. (issue #133)
-
platform rss: renamed to 'feeds' be sure to update your config.js
-
platform feeds: added functionality to fetch only a subset of entries in a feed, using date or url and 'before' or 'after'. (issue #136)
-
platform feeds: media property now added to object, to enable clients to use attached media like podcasts. (issue #138)
-
(sockethub examples) updated to angular 1.2 and bootstrap 3
-
bugfix: subsystem event listeners were not being removed after a platform session was destroyed (memory leak)
-
bugfix: in some cases jobs with non-existant platform names were accepted for processing and obviously never reply. (commit 74587a38d23cde0078b46ab275541488b4f4bf29)
-
switched to
Qpromise library due to issues withpromising, and the added bonus of the.fail()method. -
many of improvements to error handling.
-
removed some overly verbose logging.
-
platforms: (email) ensure email platform always returns a result (issue #131)
-
platforms: (email) more work has been done on imap functionality. (pull #132)
-
platforms: (xmpp) explicity log out of an xmpp session after the client manager has determined the connection is no longer being used. (#69)
-
sockethub now functions correctly as a globally installed npm packaged. (
npm install -g sockethub) -
added extensive command-line parameter support. (
bin/sockethub --help) -
sockethub now supports logging to file.
-
tests no longer depend on a config.js to be present, then can send in their own config objects on the fly.
-
fixes to the removal/re-issuing of listeners.
-
more work and bugfixes around client-manager.
-
platforms: (irc) new
ircplatform added with initial working support. (with plans to make it more complete on next release)
-
major improvement of the xmpp platform, which is still a work in progress but basically use-able for sending and receiving messages with existing contacts. (lib/platforms/xmpp.js)
-
introduction of a way for platforms to persist an object beyond a single session, with
session.clientManager. (lib/sockethub/client-manager.js) -
re-factored session objects to provide better code documentation and clarify the different roles. (lib/sockethub/session.js)
-
by default, debug logging is now switched off, so the console output should be a bit less overwhelming.
-
some fixes regarding catching uncaughtExceptions and conflicts with the promising library. (issue #125)
-
general performance optimizations, code simplification, commenting and documentation.
-
greatly improved documentation. (docs)
-
centralized credential data structure definitions. (commit)
-
when handling an invalid redis object from the queue, don't throw an exception, just log the error and continue. (issue #120)
-
platforms: (rss) added some more information (total count and article links) in completion response.
-
updated some unit tests
-
improved schema checks against incoming credential data objects. (issue #109)
-
created master list of credential data exampls, which is used both for the automated platform tests suite, and the example applications. (issues #107 and (#108)
-
resolved an issue were some lingering redis connections were building up. (issue #105)
-
much more documentation added, and updated requirements / dependencies.
-
platforms: (rss) can handle fetching multiple feeds specified in one command. (issues #111 and (issue #112)
-
platforms: (facebook) bugfixes (issue #105)
a complete list of closed issues assigned to this release
-
the dispatcher verifies the platforms of incoming commands against a list of platforms that the dispatcher has received pings from during initialization, otherwise the command fails. (issue #45)
-
revisiting the redis error, this time a few uses of the redis client were tracked down in the session object and fixed. (issue #84)
-
dispatcher was sending cleanup to subsystem (and therefore quitting the subsystem redis channel) at the wrong point (during session end instead of during shutdown). (issue #96)
-
when a listener is spawned (or re-spawned) it now waits until it receives the encryption key from the dispatcher before it queues for a job. (issue #97)
-
platforms: (rss) feed data not passed to client encoded as UTF-8 (issue #99)
-
platforms: (rss) job is now completed only after all articles are fetched and sent to client. (issue #98)
-
simplified promise fulfillment for platforms (issue #82)
-
improved session cleanup handling
-
address some listener promise handling issues
-
some small stability fixes related to redis connection hiccups
-
fixed some error handling in twitter platform. (issue #89)
-
reworked redis connection management, implemented connection pool. (issues #84 & #74)
-
handle SIGINT as early as possible.
-
fixed race condition where a command sent immediately upon connect could be lost. (issue #90)
-
greatly improved session cleanup handling, removed some old cruft. (issue #92)
-
added a 'cleanup' listener for listeners to register with session objects to know when the dispatcher has sent out a cleanup. (issue #92)
-
many small bugfixes
-
multithreading refactor, to improve decoupling and communication between dispatcher and listener(s), as well as improved stability and respawning worker threads
-
bugfixes in twitter platform
-
addition of imap supoprt to fetch verb in the email platform
-
NOTE: npm test may fail as one of its dependencies (test) requires v0.0.18 which is unable to publish to npm at the moment, hopefully this is resolved soon.
-
simplified
lib/schemas/platforms.jsand verbs.js for less typing when adding new verbs or platforms (no name property required and verbs list is an array of strings). -
sockethub admins can now add custom platforms or verbs by creating a 'local' schema in
libs/schemas/platforms.local.jsandverbs.local.jsusing the same format as the default schema files. -
'location' property, added to platforms schema. admins can specify the full path to their custom platforms .js file.
-
added sockethub executable:
bin/sockethub -
re-factored the initialization process, we now fork off a control child which then manages the master/worker cluster for listeners, the dispatcher is handled directly by the main sockethub thread. this means no disconnects from the dispatcher when a listener fails and has to reinit.
-
added redis tests to ensure a version of 2.x or greater is installed.
-
additional redis abstraction and returned value vetting
-
platforms: added
fetchfunctionality to twitter platform -
examples: twitter platform additions for
fetchverb, and bugfixes -
lots of improved error handling and bugfixes
-
adjust ulimit on startup
-
new platform:
rss -
updated examples to use sockethub-client repository (don't forget to
git submodule initandgit submodule update). -
updated examples for
rssplatform -
using 'flat-ui' ontop of twitter bootstrap for a little something different.
-
lots of work improving examples (accessible from
http://localhost:10550/examples/) -
platform:
facebook -
added feed reading functionality (verb:
fetch) -
re-arranged the lib/* directory structure to make platform files more accessible and simplify the origanization.
-
documentation updates`