Observability

Redacted logs, diagnostics, optional error reporting, and analytics groundwork.

The starter keeps support data local and redacted by default. tauri-plugin-log writes Info-level logs to stdout, a soar-tauri file in Tauri's log directory, and the webview, rotating at 5 MB. The in-app Logs page reads the path/tail and opens the folder through the three logs commands.

Before logging or reporting, Rust redacts password/secret/token/API-key/cookie/ session/credential/PIN fields, Authorization and Bearer values, and credentials embedded in URLs. Diagnostics additionally use tauri-plugin-os and tauri-plugin-process to report app version, commit/build stamps (or dev), runtime, OS, and redacted log path; About offers the support-friendly copy.

Opt-in slots

Native Sentry reads SENTRY_DSN (runtime or compiled), but sends only when the user enabled errorReportingOptIn. Before the webview exists, Rust reads that preference from settings.json; it disables default PII and redacts events. The webview slot independently uses VITE_SENTRY_DSN and the same consent, through @sentry/browser. Both are dark without a DSN and consent.

Analytics is also opt-in in settings. The current src/services/analytics.ts is deliberately a no-op scaffold—it stores consent but does not yet send the configured endpoint/write-key HTTP events described by older planning text. Choose and implement a provider before claiming analytics collection.

ErrorBoundary, RouterErrorBoundary, and the themed Error page keep renderer failures from becoming a blank window; renderer errors are logged and can enter the consented webview reporting slot.

On this page