Skip to content

Fix desktop updater diagnostics#8954

Merged
Git-on-my-level merged 1 commit into
mainfrom
codex/fix-desktop-updater-diagnostics
Jul 3, 2026
Merged

Fix desktop updater diagnostics#8954
Git-on-my-level merged 1 commit into
mainfrom
codex/fix-desktop-updater-diagnostics

Conversation

@Git-on-my-level

@Git-on-my-level Git-on-my-level commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • classify nested Sparkle-wrapped NSURLErrorDomain failures as network failures instead of generic appcast retrieval failures
  • add source app version/build, appcast host/path, nested error chain, NSURL code, and failing URL host/path to Update Check Failed telemetry
  • add target version/build and item channel metadata to Update Available and Update Installed events
  • add a focused regression test and desktop changelog fragment

Root cause

Sparkle wraps appcast retrieval/download failures in SUSparkleErrorDomain / 2001, sometimes nesting another Sparkle wrapper before the real NSURLErrorDomain. The app classified by the top-level localized message before walking nested errors, so transient network failures from current clients were reported as appcast_retrieval. The available/installed analytics also only emitted version, which made source-vs-target release interpretation require person-level sequence inference.

Fixes #8941

Validation

  • xcrun swift test --package-path desktop/macos/Desktop --filter UpdateFailureDiagnosticsTests
  • cd desktop/macos && xcrun swift build -c debug --package-path Desktop
  • pre-push hook: desktop changelog validation, desktop Swift compile, and related fast checks passed

Notes: the Swift commands still emit existing unrelated warnings, including FluidAudio resource warning, libwebp macOS version linker warning, and existing Swift concurrency/deprecation warnings.

Review in cubic

@cubic-dev-ai cubic-dev-ai 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.

1 issue found across 5 files

Confidence score: 5/5

  • desktop/macos/changelog/unreleased/issue-8941-updater-diagnostics.json has a trailing period in the changelog string, which can cause a minor convention/lint inconsistency in release notes formatting but no runtime impact if merged as-is — remove the trailing period before merging to keep changelog entries consistent.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="desktop/macos/changelog/unreleased/issue-8941-updater-diagnostics.json">

<violation number="1" location="desktop/macos/changelog/unreleased/issue-8941-updater-diagnostics.json:2">
P3: Changelog fragment change string ends with a period, but the repo convention requires no trailing period.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

@@ -0,0 +1,3 @@
{
"change": "Improved macOS updater failure diagnostics so nested Sparkle network errors are classified correctly."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: Changelog fragment change string ends with a period, but the repo convention requires no trailing period.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At desktop/macos/changelog/unreleased/issue-8941-updater-diagnostics.json, line 2:

<comment>Changelog fragment change string ends with a period, but the repo convention requires no trailing period.</comment>

<file context>
@@ -0,0 +1,3 @@
+{
+  "change": "Improved macOS updater failure diagnostics so nested Sparkle network errors are classified correctly."
+}
</file context>
Suggested change
"change": "Improved macOS updater failure diagnostics so nested Sparkle network errors are classified correctly."
"change": "Improved macOS updater failure diagnostics so nested Sparkle network errors are classified correctly"

@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: 065b2b7fc6

ℹ️ 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".

@@ -0,0 +1,3 @@
{
"change": "Improved macOS updater failure diagnostics so nested Sparkle network errors are classified correctly."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove trailing period from changelog text

desktop/macos/AGENTS.md → Changelog Entries explicitly says changelog fragments should be “One sentence, no period,” but this new fragment ends the change value with a period. Please drop the trailing punctuation so the release automation output stays consistent with the documented desktop changelog format.

Useful? React with 👍 / 👎.

@Git-on-my-level Git-on-my-level merged commit ec98a01 into main Jul 3, 2026
3 checks passed
@Git-on-my-level Git-on-my-level deleted the codex/fix-desktop-updater-diagnostics branch July 3, 2026 18:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

macOS updater: 0.12 clients report appcast retrieval failures after successful update

1 participant