Skip to content

feat: add shareable diagnostic bug reports #147

Open

Description

@MaxMichel2

Is your feature request related to a problem?

When a tester reports a problem, the report often lacks the app state and diagnostic context needed to reproduce it. DevView already exposes useful information through independent modules, but there is no single reviewed, shareable snapshot.

Describe the solution you'd like

Add an opt-in bug-report module that collects a bounded diagnostic snapshot, lets the user inspect and redact it, and shares it through the platform's normal share UI. It should not upload reports automatically.

A first version should support:

  • Host-supplied app/build/platform metadata (for example app version, build type, OS version, and device model where available).
  • Recent bounded console logs, analytics events, feature-flag values/overrides, and NetworkMock selections when those modules are registered.
  • A preview where users can omit sections or redact values before sharing.
  • Export as readable text or JSON, with explicit indication if a source was unavailable or failed to contribute data.

Implementation considerations

The information is currently owned by separate modules. Add an opt-in, read-only contribution contract rather than making devview depend directly on every feature module. For example, this is a possible shape, not a required API:

interface DiagnosticSectionProvider {
    val sectionId: String
    suspend fun collect(): DiagnosticSectionResult
}

The report builder should enforce item and byte limits, handle collection failures visibly, and avoid silently presenting a partial report as complete. Make collection and sharing user-initiated. Redact sensitive values by default; logs, analytics properties, feature values, and future network data can contain credentials or personal information. Platform-specific share integration may require a small platform bridge while keeping report formatting in common code.

Keep screenshots, automatic uploads, and network request/response history out of the initial scope unless separately designed.

Acceptance criteria

  • A user can explicitly generate, review, redact, and share a report without automatic network transmission.
  • Registered supported modules can contribute bounded snapshots without core depending on their implementation modules.
  • Missing or failed sources are clearly identified; partial reports are not represented as complete.
  • Sensitive values have safe defaults and the report preview makes included sections clear.
  • Android and iOS behavior is documented and demonstrated in the sample app.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions