0.142820  2014-10-09 08:53:20CDT-0500 America/Chicago

    * Added Bot::Backbone::Service::IRChat which enables bots using the service
      to connect to IRC servers.
    * Tweaked the "is_to_me" method of Bot::Backbone::Service::JabberChat to
      allow the bot to identify messages sent to it that end in an exclamation
      point ("!") or ("?") as well as a period (".").
    * Added an IRC link to the #backbone channel on irc.perl.org where I have a
      bot demoing the features of the framework.

0.142220  2014-08-09 22:47:33-05:00 America/Chicago

    * Added Bot::Backbone::Service::Role::Storage to make it easier to build
      storage-based add-on modules distributed on CPAN.
    * Added the ability to rewrite commands easily through the new commands
      attribute on dispatched services.
    * Added the predicate_iterator method to the dispatcher to allow classes to
      iterate over predicates and tweak them.
    * API Change: This is mostly in undocumented internals, but just anyone that
      added custom predicates will now be broken.
    * Bot::Backbone::Dispatcher::Predicate is now a role instead of a base
      class. Done to facilitate predicate iteration.
    * Added the respond_by_bot_method, respond_by_service_method,
      run_this_bot_method, and run_this_service_method dispatch sugar
      directives.

0.141180  2014-04-27 22:06:19 America/Chicago

    * Added new client debugging settings to XMPP
    * Bugfix: It's possible to receive an IM from someone we do not have on
      roster and we do not have a presence reported for. Make sure that doesn't
      cause us to choke.

0.140590  2014-02-28 10:20:15 America/Chicago

    * Bugfix: The code that detects whether the message "is_to_me" is supposed
      to strip the nick from the message if it is. The previous release stopped
      doing that correctly.

0.140490  2014-02-17 21:20:26 America/Chicago

    * Made it so that the notion of is_to_me on Jabber messages is easier to
      override.
    * Updated the default notion of is_to_me to cover a few more cases, such as
      infix and suffix mentions of the bot by name.
    * XMPP MUC chats (group chats) use the volume level to specify whether a
      message is a PM (whisper) or a channel message (spoken).
    * Added a new volume attribute to messages and a set of volume-related
      predicates for use in dispatchers.
    * Bugfix: Corrects [rt.cpan.org #78211] reported by IRONCAMEL. This was a
      known problem from the beginning that POE::Loop::EV has problems during
      testing. However, it proved itself to be the only stable event loop that
      cooperated with AnyEvent on RedHat, which was where my bot first ran. I've
      now replaced it with POE::Loop::AnyEvent, which works well on the Centos
      machines I am using in production now.
    * Bugfix: Corrects [rt.cpan.org #90695] reported by Upasana Shukla and
      patched by Zoffix Znet. The usage of enum in one instance was deprecated
      and has now been fixed.

0.140280  2014-01-28 07:05:02 America/Chicago

    * Bugfix: Corrects [rt.cpan.org #90955] reported by Upasana Shukla and
      patched by Zoffix Znet. The use of Class::MOP::load_class is now
      deprecated. Use Class::Load::load_class instead.

0.112500  2011-09-06 23:08:32 America/Chicago
    
    * API Change: The join_group() method of the GroupJoiner role now accepts a
      reference to a hash as the one and only argument rather than a string.
      This allows it to be more flexible so that the nickname or other group
      options may be passed when joining a chat.
    * The JabberChat now allows you to specify the nickname the bot should have
      in a chat room.
    * The GroupChat service now provides a nickname attribute to set a custom
      nickname within that group.
    * Bugfix: Some of the dependencies in the Makefile.PL file were wrong.
      Namely, some internal packages were incorrectly being included as
      dependencies and POE::Loop::EV was missing.

0.112400  2011-08-27 22:47:18 America/Chicago

    * API Change: The send_message method expects a hash ref rather than plain
      named parameters.
    * API Change: The send_reply method no longer allows a string to be passed,
      but requires a hash ref of named parameters.
    * API Change: The reply method of Bot::Backbone::Message now takes two
      arguments rather than just one. The first argument should be the service
      or bot object sending the message so that the send policies of that sender
      may be applied to the outgoing message. This may be something else
      entirely or undef, but a warning will be issued in that case.
    * There's a new extensible send policy framework for helping authors build
      bots that are prevented from doing really annoying things like being too
      chatty, repeating themselves too often, etc.
    * Send policies will be applied in all cases to chats, chat consumers, and
      dispatched responders automatically.
    * A new send_policy sugar method is available via Bot::Backbone to configure
      send policies.
    * Two send policy models are provided: (1) MinimumInterval to prevent
      general flooding and (2) MinimumRepeatInterval to prevent the bot from
      repeating itself.
    * Added a Responder service role to help in the process of building
      dispatched responders (i.e., most services a bot author is going to write
      up), which provides reasonable defaults for send_message/send_reply that
      will be subject to a send policy, if set.
    * ConsoleChat now has get_line and put_line methods to allow easier
      interaction with the terminal.
    * Bugfix: The respond sugar subroutine was completely unusable.
    * Bugfix: Previously, JabberChat would fail if a message was sent through it
      before the session was completely ready. Now a warning is issued instead.
    * Bugfix: JabberChat is no longer XMPP spewing debug output to STDOUT.
    * Bugfix: Group chats that start with the bots nick were being incorrectly
      picked up by the DirectChat service.
    * Bugfix: Sometimes Jabber servers send messages with no message.
      AnyEvent::XMPP passes these on for some reason. We ignore them now because
      they were causing the Bot::Backbone::Message constructor to craok.
    * Bugfix: A few documentation tweaks and other small fixes.

0.112320  2011-08-19 23:17:37 America/Chicago

	* Moose-based tools for building chat bot dispatchers and organizing chat
	  bot services.
	* Moose-based tools for building chat services, which are submodules
	  (minibots) that can be combined in flexible ways.
	* Chat service for Jabber
	* Chat service for working with a running bot at the console
	* Helper chat service for direct chat features.
	* Helper chat service for group chat features.
