Pulse icon indicating copy to clipboard operation
Pulse copied to clipboard

Pulse 2.0

Open kean opened this issue 3 years ago • 0 comments

  • Increase minimum supported platforms to iOS 13.0, watchOS 7.0, tvOS 13.0, macOS 11.0

PulseCore

  • Disable debug logs that would show up when compiled in the debug mode and the remote logger is used to address
  • NetworkLogger no longer stores trace message by default. To enable them, use a new isTraceEnabled option
  • Add contentType and expectedContentLength to NetworkLoggerResponse
  • Add originalRequest and currentRequest to LoggerNetworkRequestDetailsEntity
  • Add taskId, taskType, startDate, requestBodySize, responseBodySize, isFromCache, redirectCount, progress (relationship) to LoggerNetworkRequestEntity
  • Add support for download tasks
  • Add loadTask(_:didUpdateProgress:) for progress reporting
  • Add a new LoggerStore option synchronous. When enabled, all writes to the store happen immediately and synchronously (you generally shouldn't need it).
  • Add complete error description for networking errors
  • Add events publisher to LoggerStore that you can use to observe all events processed by the store
  • Add a way to store decoding errors (NetworkLogger/isWaitingForDecoding and NetworkLogger/logTask(_:didFinishDecodingWith:))
  • You can now change the default store (LoggerStore.shared). It automatically registers as for remote logging source.
  • Add LoggerStore.Configuration. The options, such as blobsSizeLimit can now be set on a per-store basis.
  • Make LoggerStore.model private
  • The logger is now optimized for working with images. If network logger is used for images, by default, the store will now create and store compressed thumbnails of images instead of full image data. The previews are stored using HEIF which is very efficient for storage. This can save 95% or more space. The file viewer will also display both the original and the thumbnail size.
  • Increase default database size limit from 30 MB to 64 MB. Increase the blob size limit from 200 MB to 512 MB.
  • Add a new way to filter out or modify store events: willHandlevent. It's available on both NetworkLogger and LoggerStore level
  • Make it easier to redact sentivie information from requests. Add redactringSensitiveHeaders(_:) to NetworkLogger.Request.
  • Add responseBodySizeLimit to LoggerStore.Configration with the default value of 10 Mb, preventing resources that are too large from being stored.
  • Add LoggerStore/Configuration/maxAge to limit maximum age of stored message and requests

PulseUI

  • Add support for pending requests. The requests are now added to the console as soon as they are started. This is also supported by the remote logger and Pulse Pro - #88
  • Add a new Insights screen that analyses network traffic and presents some key insights in a visual way
  • Add way to store and display decoding errors (works with JSONDecoder or any other decoder). Decoding errors are highlighted directly in the downloaded response JSON.
  • Add support for download and upload tasks
  • Redesigned Summary page: new transfer view design; add "Path" to Request;
  • Display response size directly in the message and request lists and also clearly marked responses coming from cache
  • Add "End Date" to "Timing" section in the request summary
  • Add "Domain", "Redirect" and "Duration" fields to the request summary
  • Redesigned request Summary page on all platforms
  • Optimize response and message viewer to use less vertical space during search (iOS)
  • When you open a network log, it now shows the Response screen by default, which is what you want most of the time (iOS)
  • You can now open the Response view fullscreen (iOS)
  • Update HTML/Markdown export to match the new Summary screen and add request body to the output (all)
  • Fix an issue where N of messages not updated in search bar (iOS)
  • Add an option to switch between original and current request in Summary (iOS, macOS)
  • Display parsed query items in the request summary (iOS, macOS)
  • Add "Redirect", "Response Size", "Task Type", and "Response Source" network filters (iOS, macOS)
  • Use triple-column layout on iPad (iOS 14+)
  • "Hosts" network filter now allows multi-selection and some hosts are now displayed inline in the filters panel
  • Add "Time Period" filter to network filters
  • FileViewer now renders big files lazily
  • (watchOS) Add "Only Errors" and "Only Network" filters directly on the home page
  • (watchOS) Remove a way to pin messages
  • (watchOS) Fix an issue where if the data section was empty, it'll still display a "Show" button taking up valuable vertical space
  • (watchOS) Move "Remove Messages" button and sharing options to a new Settings page
  • (watchOS) Reduce binary size (TODO: by how much?)
  • (tvOS) Red binary size
  • (iOS, macOS) Add an option to copy "key" to KeyValuePairView context menu
  • (iOS 16) context menu for KeyValuePairView now shows full value
  • Add support for query items from request body in File Viewer
  • (iOS, macOS) Add simple syntax-highlighting for HTML
  • (iOS) Add an option to preview HTML response in a web view
  • Improve image viewer: add image border, display size and type

Fixes

  • Fix an issue with pins sometimes incorrectly being displayed in table cells
  • Fix metrics rendering for request start/end
  • Fix an issue where on watchOS and tvOS all messages were displayed by default (and not just messages from the current session)
  • (watchOS, tvOS) Fix an issue where sometimes details screen can get popped automatically
  • Fix an issue where "Remove Messages" button was not available when filters were applied that filer out all messages
  • Fix an issue where network logger was storing localizedDescription for errors instead of a debugDescription
  • Fix an issue with errors that don't provide an error not being recorded as request failures
  • Fix an issue where some dates were formatted using current locale
  • (iOS) Fix line height in raw headers viewer
  • Fix an issue where TransferSize view was showing info from only the latest transaction

PulseUI (macOS)

If someone is testing your macOS app, they now have a convenient way to preview the logs right from the app and enable remote logging.

  • Add PulseUI.MainView and PulseUI.SettingsView to macOS - #89#82

Demo

  • You can now use all demo projects to test Pulse Pro (remote logging is available for all of them)

kean avatar Jul 15 '22 23:07 kean