anchor.diff:                    mem_total=Total,
                     mem_used=Used,
                     mem_erlang=proplists:get_value(total,erlang:memory()),
  -                  vnodes=riak_core_vnode_manager:all_vnodes()
  -                }.
  +                  vnodes=riak_core_vnode_manager:all_vnodes(),
  +                  handoffs=[Handoff || {Handoff,outbound,_,_} <- Handoffs]
  +                  }.
   
   %% each node knows about its set of handoffs, collect them all together
  -get_all_handoffs(_State=#state{nodes=Members}) ->
  +get_all_handoffs(#state{nodes=Members}) ->
       lists:flatten([HS || #member_info{handoffs=HS} <- Members]).
   
   %% return a proplist of details for a given index
   get_partition_details (#state{services=Services,ring=Ring},{Idx,Owner},HS) ->
       Statuses=[get_vnode_status(Service,Ring,Idx) || Service <- Services],
  -    Handoffs=[{M,N} || #sender{module=M,index=I,target_node=N} <- HS, I==Idx],
  +    Handoffs=[{M,N} || #handoff{module=M,index=I,node=N} <- HS, I==Idx],
       #partition_info{ index=Idx,
                        partition=partition_index(Ring,Idx),
                        owner=Owner,
  
positive.code: %% run locally per-node, collects information about this node for the session
  get_my_info () ->
      {Total,Used,_}=memsup:get_memory_data(),
  
      %% construct the member information for this node
      #member_info{ node=node(),
  
negative.code:         }).
  
  %% hack: periodically update the ring with itself
  -define(INTERVAL, 500).
  
  %% delay used after a ring update
  -define(UPDATE_TICK_TIMEOUT, 100).
  
  %% ===================================================================
  %% Public API
  