code: def push(id, body, wallets, log, lifetime: 6)
        DirItems.new(@dir).fetch.each do |f|
          f = File.join(@dir, f)
          File.delete(f) if File.mtime(f) < Time.now - lifetime * 60 * 60
        end
        journal = File.join(@dir, "#{Time.now.utc.iso8601.gsub(/[^0-9]/, '-')}-#{id}")
        jlog = Logger.new(journal)
        jlog.level = Logger::DEBUG
        jlog.formatter = Log::COMPACT
        jlog.info("push(#{id}, #{body.length} bytes): starting...")
        jlog.info("Time: #{Time.now.utc.iso8601}")
        jlog.info("Zold gem version: #{Zold::VERSION}")
        modified = @pipeline.push(id, body, JournaledPipeline::Wallets.new(wallets, jlog), Log::Tee.new(log, jlog))
        jlog.info("push(#{id}): done")
        FileUtils.mv(journal, journal + '-done')
        modified
      end
docs: Returns a list of modifed wallets (as Zold::Id)