Email Delivery Hotfix
Registration verification emails, team invites, and a few other transactional emails were not being delivered in some configurations. The issue is now resolved and any registration whose verification email did not arrive can be retried.
- Account verification emails restored: the signup confirmation email now reaches every recipient again. If you signed up recently and did not receive it, simply try the signup again or request a new verification link from the login page
- Team invites delivered reliably: invitations to new team members no longer get lost on the way out
- Alert and welcome emails fixed too: the same underlying issue affected log-alert notifications and welcome emails — both are now back to normal
Reset Data Reliability & Team Re-Invite Fix
Resetting application data on large datasets is now safe and asynchronous, with a completion email and clear UI feedback. Plus a fix that lets you re-invite a team member after a stale invite without manual cleanup.
- Asynchronous Reset Data: clicking Reset Data on an app with millions of log events used to take minutes and could time out before finishing, leaving the data in place. The reset now runs in the background in batches and finishes reliably no matter the table size
- "Reset queued" UI feedback: a banner appears in the app settings while the reset is in progress and the Reset button stays disabled until it completes, so you always know what state the app is in
- Reset completion email: account owners receive an email when the reset finishes, with a summary of how many log events, metrics and inactive customers were removed
- Team re-invite fix: if a previous invite to a team member had become stale (expired or cancelled), inviting that same email again now works without having to clean up the old invite first
C++Builder & MSVC SDKs, Global Tags & Per-Customer Alerts
Native C++Builder and Microsoft Visual C++ support join the SDK family via the ExeWatch DLL, alerts and logs can now be filtered by a specific customer and by global tags, and every SDK gains a graceful flush API plus thread-local timing measurements.
- C++Builder & MSVC support: ship to customers using Embarcadero C++Builder or Microsoft Visual C++ via the ExeWatch DLL. A dual-mode C header plus a ready-to-paste dynamic-loader file mean no static link is required, and older Delphi versions (4 to XE7) can now integrate too
- Global Tags: declare tags once in the Delphi or JavaScript SDK and they ride along on every log event; the log viewer gets a Global Tags filter so you can slice by deployment, tenant, build flavor, or anything else you want
- Per-customer alert filter: log-level and timing alerts can now be scoped to a single Customer ID, so high-volume customers no longer drown out the rest of your fleet
WaitForSending API across all SDKs: console apps and short-lived processes can now block until queued logs are uploaded before exiting. Full traces are guaranteed even when an application exits quickly through Halt or after Application.Run returns
- Thread-local timings: every thread keeps its own independent timer stack across the Delphi, .NET and Python SDKs. Begin and end timing measurements with confidence in multi-threaded workloads
- JavaScript SDK error capture: HTTP errors now ship with the response body automatically, and a new
httpErrorExtractor hook lets you customise exactly what gets attached
- Per-app file queue isolation: each application's API key gets its own offline-events subdirectory, so multiple ExeWatch apps can safely share a storage path on the same machine
- Monthly event quota notifications: account owners and team members get an email at 80% (warning) and at 100% (limit reached) of the monthly event quota, so a runaway logger never silently fills your plan
Several of these improvements began as conversations with teams running ExeWatch at enterprise scale. We refined them together and then made them available on every plan, so the wider community benefits from what those customers asked for. A heartfelt thank-you to everyone who took the time to share their use cases. Please keep them coming.
Delphi SDK v0.22.0 · .NET SDK v0.5.0 · JS SDK v0.15.0 · Python SDK v0.1.0 · DLL SDK (C/C++/MSVC) ABI v3
New Reorder Experience, Event Time & Anonymization Fix
A dedicated dialog for reordering applications, log timestamps now reflect when the event actually happened on the client, in-app confirm dialogs and toasts replace browser popups, and a Delphi SDK fix fully protects usernames when anonymization is enabled.
- Redesigned app reordering: a dedicated dialog with a clean list, a clear "Custom order active" indicator, and one-click Reset to default
- Event Time column in the log list: the log viewer now shows when the event actually happened on the client, not when it arrived at the server (the log detail modal still displays both plus the network latency)
- Sticky page header: the title bar stays visible while you scroll long log or timing tables
- In-app confirm dialogs and toasts: native browser popups are gone — delete app, reset data, reset order, sync billing, etc. now use the dark-themed ExeWatch dialogs and success toasts
- Delphi SDK anonymization fix: with AnonymizeDeviceId enabled, the Windows username is no longer shipped — previously only the device ID was hashed, so the real login still appeared in tooltips and on the Devices page
- Delphi SDK line endings: ExeWatchSDKv1.pas always ships with CRLF, no more "inconsistent line endings" warning when added to a project
- Delphi docs updates: corrected the InitialCustomDeviceInfo example and added a new "Coexisting with madExcept / EurekaLog" integration section
- Global SDK Configuration in Admin Console: set flush interval, batch size, sampling rate and max message length once and have the value applied to every application
- Confirm dialog stacking fix: confirmations now always render above the App Settings modal (previously could end up hidden behind it)
Delphi SDK v0.20.1 · .NET SDK v0.4.0 · JS SDK v0.13.1 · Python SDK v0.1.0
Python SDK & AnonymizeDeviceId Fix
New Python SDK with full feature parity, and a bug fix for the Delphi AnonymizeDeviceId option.
- Python SDK: single-file SDK for Python 3.7+ with zero external dependencies — logging, breadcrumbs, timing, metrics, user identity, tags, device info, offline persistence, background shipping
- Python SDK selectable when creating Windows, Linux, or macOS applications
- SDK download endpoint, integration guide, and inline code snippets for Python
- Public documentation and landing page updated with Python SDK section
- Fixed
EIntOverflow in Delphi SDK AnonymizeUsername when projects enable overflow checking ({$Q+})
- Rebuilt Delphi DLL SDK (32-bit and 64-bit) with the overflow fix
- New
invoke sdk-python task integrated into invoke sdk-all
Delphi SDK v0.20.0 · .NET SDK v0.4.0 · JS SDK v0.13.1 · Python SDK v0.1.0
Android Support & UI Improvements
Full Android platform support for the Delphi SDK, breadcrumb visibility improvements, and FMX download fix.
- Full Android platform support in Delphi SDK: device info (RAM, CPU, display resolution), app version from AndroidManifest, kernel thread ID
- Fixed missing FMX GUI option in SDK download page for Delphi apps
- Breadcrumb indicator icon in log list with count tooltip
- Sequential numbering on breadcrumbs in log detail view
Delphi SDK v0.20.0 · .NET SDK v0.4.0 · JS SDK v0.13.1
Stack Traces, Generic Webhooks & UI Improvements
Automatic stack trace capture on all errors, generic webhook integration with retry, and a more compact log detail view.
- .NET / C# SDK with full Delphi parity: logging, breadcrumbs, timing, metrics, hardware info, exception capture, offline persistence
- Automatic stack trace capture for all Error and Fatal logs (Delphi SDK, Windows)
- Generic webhook integration with token authentication and automatic retry (Business plan)
- New Integrations modal for Discord and Webhook configuration with per-type test
- Exception details card in Log Detail (class, source, address)
- Compact Log Detail layout with message immediately visible
- Sortable Metrics tables with sort persistence across refresh
- Devices table with fixed-width columns and cleaner layout
- Fixed breadcrumb thread isolation on Linux
- Optimized map file loading with O(n log n) sorting
Delphi SDK v0.19.0 · .NET SDK v0.4.0 · JS SDK v0.13.1
Custom Metrics, Device Snapshots & Responsive UI
Send custom numeric metrics, plan-based health monitoring, immutable device state snapshots on log events, and a fully responsive interface.
- Custom Metrics page with counters and gauges, time-series charts, and gauge configuration
- Delete metric data directly from the detail modal
- Health monitoring tiered by plan: basic (Hobby), error-based (Pro), full (Business)
- Anti-flapping logic prevents rapid health status oscillations
- Share applications in read-only mode with external users — give clients and partners live visibility without granting full access
- Device state snapshots: each log event captures an immutable snapshot of the device state at creation time
- Version filters on Logs page to filter by App Version and Binary Version
- Adaptive toolbar with three responsive layouts for desktop, tablet, and mobile
- Optimized background jobs for better scalability
- JavaScript SDK: no more lost logs when users close the browser tab
Delphi SDK v0.18.2 · JS SDK v0.13.1
Health Alerts, Discord & Security Hardening
Automatic health status monitoring with notifications, Discord integration, and infrastructure security improvements.
- Health Score on the overview dashboard — monitors error rate, crashes, and slow operations (24h)
- Health status change alerts: automatic email & Discord notifications when an app degrades or recovers
- Health history modal with 7-day transition timeline
- Discord webhook integration for all alert types (log level, timing, health)
- Rate limiting per IP on login, SDK ingest, and API endpoints
- JavaScript SDK:
ignoreUrls option to filter out third-party errors
- Privacy Policy & Terms of Service guide with GDPR-compliant templates
- Timing page: fixed special characters in timing IDs and improved duration display
- Smarter device table: long OS versions are now truncated, platform icons in sidebar
Usage Analytics
Understand how your software is used with comprehensive usage analytics.
- Active sessions, devices, and customers over time with trend deltas
- Usage heatmap (hour × day of week) to spot peak usage patterns
- Top customers ranking by session count
- OS distribution chart across all devices
- Error rate trend by app version
- Time range selector: 7d, 30d, 90d
Delphi 12 Support & OS Change Tracking
SDK compatibility improvements and enhanced device tracking.
- Delphi 12 (Embarcadero RAD Studio) full SDK support
- Automatic OS change detection on devices (e.g. Windows 10 → 11)
- App Updates page improvements with OS update badges
Thread-Local Breadcrumbs
Improved breadcrumb handling for multi-threaded applications.
- Thread-local breadcrumb storage in Delphi SDK
- Each thread maintains its own breadcrumb trail
- Alerts page timezone: dates now convert UTC → local timezone
Device Version History & Automatic Exception Capture
Track version updates across all devices and capture unhandled exceptions automatically.
- Device version history with timeline in device modal
- App Updates page with stats, filters, and pagination
- Automatic unhandled exception capture in Delphi SDK
- VCL hook unit for GUI exception capture
- FMX hook unit for FireMonkey exception capture
- Console app crash detection via System.ExceptProc
GDPR Compliance
Comprehensive GDPR compliance features for EU data protection requirements.
- Account pseudonymization instead of hard delete
- Complete data export including all personal data
- Data Processing Agreement (DPA) template
- Right to Restriction of Processing
- Email change functionality
- Email notifications for restriction and email changes
Email Alerts & Platform-Based Architecture
Threshold-based email alerts and per-platform application architecture.
- Email alerts with configurable thresholds, cooldown, and tag filters
- Timing alerts for slow operation detection
- One application = one platform (Windows, Linux, macOS, Android, Browser). iOS coming soon
- Platform-based API key prefixes (ew_win_, ew_lin_, ew_mac_, etc.)
- Configurable slow threshold per application
- Sortable columns on Timing page
Initial Release
The first public release of ExeWatch, a complete APM platform for server, desktop, and web applications.
- Centralized log aggregation with 5 severity levels
- Performance timing and profiling (Avg, Min, Max, P95)
- Hardware info collection (CPU, RAM, disks, monitors, OS)
- Multi-customer and multi-device tracking
- Breadcrumbs trail for debugging
- User identity tracking
- Global tags and version tracking
- Offline persistence with automatic retry
- Native Delphi SDK (VCL, FMX, Console, Services)
- JavaScript SDK for web applications
- Team management with role-based access
- Stripe billing integration (Hobby, Pro, Business plans)