Skip to content

feat: send diagnostic reports to support - #359

Merged
veryCrunchy merged 32 commits into
mainfrom
feat/support-intake-integration
Aug 14, 2026
Merged

feat: send diagnostic reports to support#359
veryCrunchy merged 32 commits into
mainfrom
feat/support-intake-integration

Conversation

@veryCrunchy

Copy link
Copy Markdown
Member

Summary

  • add an explicit Send to support flow to the existing anonymized diagnostics card on Android and desktop while keeping Save a copy
  • reuse the support-bundle sanitizer for both the ZIP and submitted reproduction text, and send only bounded release/feature metadata to the product-neutral Obiente Support API
  • provide upload progress, cancellation, validated private receipts, support-code copying, and the private status link
  • persist interrupted submissions in app-private storage, reconcile ambiguous outcomes before retrying, reuse the original idempotency key across restarts, and let users discard retained reports
  • reconcile cancellation races and delete a report that the service accepted while cancellation was in flight

The production endpoint is https://support.obiente.org; the corresponding service foundation is Obiente/support#2 and must be deployed before this client path is usable outside tests.

Advances #351

Privacy and failure behavior

  • no automatic or background submission
  • no account credentials, server URLs, filenames, file contents, request bodies, cookies, or stable device identifier
  • 4 MiB archive bound and 64 KiB response bound
  • same-origin validation for private receipt links
  • terminal success, rejection, cancellation, and explicit discard remove app-private temporary files
  • ambiguous/interrupted outcomes retain a bounded private archive and idempotency descriptor for safe reconciliation

Validation

  • node tools/changelog-fragments.mjs validate (88 fragments)
  • :ui:desktopTest (full suite)
  • :androidApp:testDebugUnitTest
  • :androidApp:assembleDebug
  • final focused JvmSupportIntakeTest suite (6 tests)
  • final :androidApp:compileDebugKotlin

The focused tests cover sanitized on-wire content, successful cleanup, ambiguous receipt reconciliation, restart-safe idempotency reuse, permanent rejection cleanup, explicit discard, and cancellation reconciliation with server-side deletion.

@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 15:03 Destroyed
@obiente-cloud

obiente-cloud Bot commented Aug 13, 2026

Copy link
Copy Markdown

Obiente preview

NC Native · 89bc3ded8e31 · Removed

View preview status

View in Obiente

Obiente updates this comment as the preview changes.

@veryCrunchy veryCrunchy added this to the 0.6 Platform polish milestone Aug 13, 2026
@veryCrunchy veryCrunchy added priority:P1 Required for the pre-release product experience area:ux Navigation, accessibility, responsive design, and interaction area:platform Android, desktop, iOS, Windows, macOS, and Linux platform work area:release Builds, CI, security, packaging, and releases type:feature New product capability type:reliability Correctness, crash prevention, recovery, and data safety type:security Authentication, privacy, secrets, or data protection platform:android Android-specific implementation or validation platform:desktop Desktop-specific implementation or validation labels Aug 13, 2026
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 15:09 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6f312e2349

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/commonMain/kotlin/dev/obiente/nextcloudnative/app/NextcloudNativeApp.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 15:45 Destroyed
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 15:45 Destroyed
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 15:50 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2814d5a11c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 17:08 Destroyed
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 13, 2026 17:13 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review


P2 Badge Preserve the diagnostic snapshot confirmed by the user

If the process stops after the pending descriptor is persisted but before packaging completes, retrying later takes a new visibleEvents() snapshot rather than the history covered by the original confirmation. Events recorded or cleared in the interim therefore silently change the report that gets uploaded without another preview or confirmation. Persist the confirmed sanitized snapshot with the pending action, or require the user to review and confirm the regenerated report.

AGENTS.md reference: AGENTS.md:L250-L256

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/commonMain/kotlin/dev/obiente/nextcloudnative/app/NextcloudNativeApp.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 05:19 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2ce9f2e5f3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/commonMain/kotlin/dev/obiente/nextcloudnative/app/NextcloudNativeApp.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 06:13 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0d2fa63228

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 06:24 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42999cdb74

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 06:36 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5583cd0d23

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 07:42 Destroyed
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 07:47 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0188557181

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 08:14 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f5bb651091

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
Comment thread ui/src/commonMain/kotlin/dev/obiente/nextcloudnative/app/NextcloudNativeApp.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 09:34 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ccd84d31cb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ui/src/jvmMain/kotlin/dev/obiente/nextcloudnative/app/JvmSupportIntake.kt Outdated
@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 09:50 Destroyed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fbd134c853

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@obiente-cloud
obiente-cloud Bot temporarily deployed to Obiente Preview / PR #359 / NC Native August 14, 2026 10:10 Destroyed
@veryCrunchy
veryCrunchy merged commit 363bb1f into main Aug 14, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:platform Android, desktop, iOS, Windows, macOS, and Linux platform work area:release Builds, CI, security, packaging, and releases area:ux Navigation, accessibility, responsive design, and interaction platform:android Android-specific implementation or validation platform:desktop Desktop-specific implementation or validation priority:P1 Required for the pre-release product experience type:feature New product capability type:reliability Correctness, crash prevention, recovery, and data safety type:security Authentication, privacy, secrets, or data protection

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant