Skip to content

2.5.0

Choose a tag to compare

@easyhooon easyhooon released this 18 Oct 06:43
· 159 commits to main since this release
8b6c839

Library and desktop app. dari, dari-core, dari-noop and dari-inspector-protocol 2.5.0 are on Maven Central. The last library release was 2.2.1; 2.2.2–2.4.0 were desktop only.

Behavior changes

  • JSON exports are now an object, not a bare array: { "format_version": 2, "meta": { ... }, "messages": [ ... ] }. Tools that read Dari exports should check format_version and read messages. TEXT exports start with a short app/device header. (#206)
  • Text search in both inspectors now also matches tag, request ID and request/response payloads. With masking on, it searches the masked payloads, so hidden values don't match. Desktop payload search needs the app on dari 2.5.0; older apps still match by handler and display name. (#194, #195)
  • Desktop: the Update button now installs the update in place for the Linux tarball and the per-user Windows install, like macOS. The .deb and copies outside %LOCALAPPDATA% still open the download page. This takes effect from 2.5.0, so 2.4.0 and earlier update to 2.5.0 by hand. (#196, #197)
  • Desktop: Windows is no longer labeled preview. Installers stay unsigned, so SmartScreen may warn on first run. (#179)

What's Changed

  • feat: record the WebView page URL and filter by origin by @easyhooon in #208
    • Call DariInterceptor.onPageUrlChanged(url) from your existing WebViewClient (e.g. doUpdateVisitedHistory, which also catches SPA navigation). Messages captured afterwards keep the page URL without user info, query or fragment.
    • Both inspectors show the page in the detail view and add an origin filter once more than one origin appears; search and Response Time follow it. Exports carry Page: (TEXT) and page_url (JSON).
    • Bridges that don't call it keep working unchanged. Follow-up fixes from review in #209. See Interceptor.
  • feat: add Dari.setEnvironment() for capture environment labels by @easyhooon in #207
    • Label a capture with region, web build, flavor and so on. Labels show as chips in the app, in the desktop status line, and in TEXT/JSON exports (meta.environment).
  • feat: add app and device metadata to TEXT and JSON exports by @easyhooon in #206
  • feat: highlight search matches in the payload detail views by @easyhooon in #205
    • Matches are marked in the JSON tree and raw view on both surfaces; collapsed nodes holding a match open, and the detail scrolls to the first one.
  • feat: search request and response payloads in both inspectors by @easyhooon in #195
    • New protocol op messages.search; the app runs the search on what it would send, masking included.
  • feat: hint when the connected app can't search payloads by @easyhooon in #204
    • With an app on an older dari, a line under the desktop filter bar says payload search needs dari 2.5.0 in the app, instead of silently matching summary fields only.
  • feat: align inspector filters between Android and desktop by @easyhooon in #194
    • Android: Web → App / App → Web direction chips. Desktop: an All tags menu.
  • feat: per-handler Response Time stats in the app and the desktop by @easyhooon in #184, #185
    • Calls, errors and avg/min/max response time per handler and direction, slowest first; averages ≥ 500 ms are highlighted. In the app, from the chart icon on the message list; on desktop, Response Time in the filter bar or the View menu.
  • feat(protobuf): add a protobufDecoder { } registry DSL by @easyhooon in #183
    • Register decoders per handler, direction and request/response instead of writing one ProtobufPayloadDecoder. The existing API is unchanged.
  • feat: in-app update for the Linux tarball and the Windows install by @easyhooon in #196, #197
    • The new copy is checksum-verified and version-checked before it replaces the installed one. Linux rolls back if the new version doesn't start; Windows Installer rolls back a failed install. Tested end to end on Windows and on Debian 13 (Xfce).
  • fix(runtime): keep persisted messages in sync with memory by @easyhooon in #187
  • docs: Inspector UI page for filters, Response Time and export, working search on the docs site, and a README that leads with demos and Quick Start by @easyhooon in #193, #182, #180, #181
  • build/ci: ABI baseline and external consumer check for dari-core, Robolectric tests for export and retention, and API parity/detekt/sample builds in CI by @easyhooon in #186, #187, #192
  • ci: skip the docs deploy on forks by @hyunjung-choi in #91

Desktop app downloads

Installers for macOS (Apple Silicon and Intel, signed and notarized), Windows (.exe and .msi) and Linux x64 (preview, .deb and .tar.gz) are attached below, with SHA-256 files. See the Desktop App guide for install steps, or install from the terminal on macOS:

curl -fsSL https://raw.githubusercontent.com/easyhooon/dari/main/scripts/install-desktop.sh | bash

Full Changelog: 2.4.0...2.5.0