The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
To-do:
    . store the origin of a callback so
      we can tell the user where it originated if it leaks
    . Make the callback-leak warning configurable
    . Make MozRepl::RemoteObject::Instance::DESTROY just
      queue the id, and have MozRepl::RemoteObject call
      repl.breakLink() with just the ids, reducing traffic
    . Automatically load the AnyEvent backend if needed.

0.25 20110426
    . Add CLEAR method to tied objects so now list-assignment
      to a hash works:
      
          %$foo = (Just => 'another', Javascript => 'Hacker');
          $foo->{Just} # another
          $foo->{Javascript} # Hacker
          
    . Add the C<bufsize> parameter to ->install_bridge
      for setting the Net::Telnet buffer size
    . Don't list MozRepl::RemoteObject::Methods in carp()
    . More method implementation moved to ::Methods

0.24 20110416
    . Redo connect logic in ->setup, so that we handle cases
      where MozRepl is unavailable gracefully.

0.23 20110415
    . Fix test failures
    . Postpone deprecation period of methods added to JS objects
      a bit. All methods will remain until after 0.25.

0.22 20110411
    . Added experimental AnyEvent-compatible backend MozRepl::AnyEvent
      This backend does not yet support asynchronous execution. It
      just plays well with other AnyEvent-enabled modules.
      It is not automatically loaded.
    ! Start of deprecation cycle for methods injected to the JS objects.
      ->__xpath will be moved to MozRepl::RemoteObject::Util::xpath
      Change
          $obj->__xpath(...)
      to
          $obj->MozRepl::RemoteObject::Util::xpath( ... )
      This makes the object cleaner and you shouldn't have many places
      where you call C<< ->__xpath >> anyway, as it is not available on
      most JS objects anyway.
      
      This method will go away in 0.23.

0.21 20110109
    . Remove a debugging help that crashed the module when it was called...

0.20 20110106
    . Improve event sending/handling
    . Add max_queue_size to limit queue backlog
    . Add stress-test for queue backlog
    . Collect statistics about roundtrips,callbacks,fetch,store
      in $repl->{stats}

0.19 20101211
    . Simplify Exporter usage
    . Add ->constant() method to (lazily) fetch Javascript constants
      and cache them on the Perl side of things.
    . Add more tests to ensure that we have no memory cycles

0.18 20101122
    . Add test for pop(), actually make pop() work
    . Add test for splice(), actually make splice() work
    + Add as_list, an exportable function in MozRepl::RemoteObject,
      that allows bulk-fetching of arrays.

0.17 20101120
    . Added test for circular reference fixed in 0.16
    . Added more support for command queueing. Destructors can now
      be queued until program exit, repl shutdown or
      until the next command is executed, whichever comes first.
    + Actually call the callback set up by ->__on_destroy
    . Added a test that the __on_destroy callbacks get called

0.16 20101119
    . Enable use_queue parameter (but leave it undocumented)
    + Fix memory leak when using ->declare. This should fix the messages
      during global destruction.

0.15 20101021
    . Filter object for only immediate properties. This means that inherited
      properties don't show up anymore in keys %$obj or using exists. You
      can still get at their values though.
      See L<http://yuiblog.com/blog/2006/09/26/for-in-intrigue/> for a
      discussion of filtering and why it should happen.
    . Implement C<delete> (and tests) for hashes

0.14 20101017
    . Fix ->__event() to create the event in the correct .document.
      This fixes intermittent errors that were raised if (for example)
      the Firefox Javascript Console was the topmost Firefox window.
    . Add a test that checks that the Changes file has a well-formed date
      for every version

0.13 20100810
    . Squelch some warnings when global destruction pulls out the rug
      from under our feet.
    . Don't fetch results from Firefox if we don't need them.
      STORE() in tied elements should not return a value.

0.12 20100625
    . Fix bad unquoted passthrough of numbers with a leading zero. This
      led to those numbers being interpreted as octal numbers.
      Reported and diagnosed by Jess Robinson and James Mastros
    . Document limitations of passthrough
    + Die with an informative message if we can't connect

0.11 20091130
    . Don't carp() in ::TiedHash or ::TiedArray
    . Added "launch" option to launch a mozrepl process
    . This means we need IPC::Run as a prerequisite

0.10 20091126
    . Add way to deregister callbacks to release the memory
      taken up on the Perl side for them.

0.09 20091121
    . Add tests for multiple bridge instances
    . Multiple bridge instances work (except for some warnings
      originating from MozRepl.pm)
    . Some code cleanup

0.08 20091111
    . Localize $@ in the destructor so we don't eat
      exceptions.
    . Allow for passing of multiple parameters in callbacks

0.07 20091109
    . Always use our own JSON encoder on the Javascript side.
      The native encoders don't output ASCII. This is sad,
      but there seems to be a problem with the encodings along the way.

0.06 20091102
    . Added __event() to send arbitrary events

0.05 20091031
    . Implement callbacks/events

0.04 20091030
    . Added exists functionality for hashes
    . added $bridge->appinfo as a convenience function

0.03 20091029
    ! Fixed ->__xpath
    ! Fixed bad use of ->declare
    * Use the stable but large encoding of 7-bit ASCII
      for communication by switching to String.toSourceCode() on the
      JS side.

0.02 20091027
    * ->__xpath returned numbers instead of objects
    * The object was split into two classes, one for bridge functionality
      and one for instance functionality
    * $bridge->declare() for declaring cached anonymous functions

0.01 20091018
    . released on CPAN