Pulse
Pulse copied to clipboard
Pulse 2.0
- 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
-
NetworkLoggerno longer stores trace message by default. To enable them, use a newisTraceEnabledoption - Add
contentTypeandexpectedContentLengthtoNetworkLoggerResponse - Add
originalRequestandcurrentRequesttoLoggerNetworkRequestDetailsEntity - Add
taskId,taskType,startDate,requestBodySize,responseBodySize,isFromCache,redirectCount,progress(relationship) toLoggerNetworkRequestEntity - Add support for download tasks
- Add
loadTask(_:didUpdateProgress:)for progress reporting - Add a new
LoggerStoreoptionsynchronous. 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
eventspublisher toLoggerStorethat you can use to observe all events processed by the store - Add a way to store decoding errors (
NetworkLogger/isWaitingForDecodingandNetworkLogger/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 asblobsSizeLimitcan now be set on a per-store basis. - Make
LoggerStore.modelprivate - 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 bothNetworkLoggerandLoggerStorelevel - Make it easier to redact sentivie information from requests. Add
redactringSensitiveHeaders(_:)toNetworkLogger.Request. - Add
responseBodySizeLimittoLoggerStore.Configrationwith the default value of 10 Mb, preventing resources that are too large from being stored. - Add
LoggerStore/Configuration/maxAgeto 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
JSONDecoderor 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
-
FileViewernow 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
localizedDescriptionfor errors instead of adebugDescription - 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.MainViewandPulseUI.SettingsViewto macOS - #89#82
Demo
- You can now use all demo projects to test Pulse Pro (remote logging is available for all of them)