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.
