Skip to content

fix: add update diagnostics#71

Merged
steipete merged 3 commits into
mainfrom
fix/update-diagnostics-issue-70
May 30, 2026
Merged

fix: add update diagnostics#71
steipete merged 3 commits into
mainfrom
fix/update-diagnostics-issue-70

Conversation

@steipete

Copy link
Copy Markdown
Owner

Summary

Adds copyable update diagnostics in About so Sparkle install-location failures include the runtime bundle path, resolved bundle path, update availability, Developer ID signing, Homebrew cask, App Translocation, and quarantine signals.

Fixes #70.

Proof

  • pnpm test --filter UpdateDiagnosticsTests
  • pnpm build
  • pnpm check
  • git diff --check

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed May 30, 2026, 11:54 AM ET / 15:54 UTC.

Summary
The PR adds a copyable About-window update diagnostics button, a new UpdateDiagnostics helper, access to Sparkle signing detection, focused tests, and an unreleased changelog entry.

Reproducibility: not applicable. for the PR diff itself; the branch adds diagnostics for a reported updater failure, and I reviewed the source diff rather than reproducing the Sparkle install-location error in a signed macOS bundle.

Review metrics: 1 noteworthy metric.

  • Diff surface: 5 files changed, 114 added, 1 removed. The patch is focused but spans UI, updater support code, tests, and release notes.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🌊 off-meta tidepool
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Decide whether the linked update-failure report should close on this diagnostics-only merge or change the body to a non-closing reference.

Risk before merge

  • [P1] Merging with the current PR body may auto-close the linked update-failure report even though this branch adds diagnostic collection rather than demonstrating that Sparkle's install-location failure is fixed.

Maintainer options:

  1. Use a non-closing reference before merge (recommended)
    Update the PR body so the linked update-failure report remains open unless maintainers explicitly decide diagnostics are the final resolution.
  2. Accept diagnostics as the resolution
    Merge as-is only if maintainers decide the linked report is resolved by collecting these diagnostics rather than changing updater behavior.

Next step before merge

  • [P2] The PR is owner-authored and needs a maintainer decision on whether diagnostics should close the linked update-failure report; there is no narrow code repair to queue.

Security
Cleared: The diff copies local diagnostics to the pasteboard only on explicit user action and does not add dependency, token, network, or code-execution risk.

Review details

Best possible solution:

Land the diagnostics helper only if maintainers intentionally want it to resolve the linked report; otherwise change the PR body to a non-closing reference and keep the updater failure tracked separately.

Do we have a high-confidence way to reproduce the issue?

Not applicable for the PR diff itself; the branch adds diagnostics for a reported updater failure, and I reviewed the source diff rather than reproducing the Sparkle install-location error in a signed macOS bundle.

Is this the best way to solve the issue?

Unclear: the implementation is a narrow diagnostics path, but using it as the final fix for the linked updater failure requires maintainer judgment.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 6887b3162e2e.

Label changes

Label justifications:

  • P2: This is a normal diagnostics improvement for a limited update-support workflow, not an urgent runtime outage.
  • merge-risk: 🚨 automation: The PR body can trigger GitHub auto-closing of a linked report even though the branch does not prove the reported update failure is fixed.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🌊 off-meta tidepool and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Not applicable: The PR is maintainer-authored, so the external-contributor real behavior proof gate does not apply; the body lists pnpm test, pnpm build, pnpm check, and git diff --check.
Evidence reviewed

Acceptance criteria:

  • [P1] pnpm test --filter UpdateDiagnosticsTests.
  • [P1] pnpm build.
  • [P1] pnpm check.
  • [P1] git diff --check.

What I checked:

Likely related people:

  • steipete: Peter Steinberger authored the Sparkle updater gating history, the About settings split, and the current diagnostics branch in the affected paths. (role: feature owner and recent area contributor; confidence: high; commits: 2f606fe69878, 06aa3b397f19, af5ac30fc2d1; files: Sources/RepoBar/Support/SparkleController.swift, Sources/RepoBar/Settings/About/AboutSettingsView.swift, Sources/RepoBar/Support/UpdateDiagnostics.swift)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal priority bug or improvement with limited blast radius. merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. labels May 30, 2026
@steipete steipete merged commit 55a6405 into main May 30, 2026
2 checks passed
@steipete steipete deleted the fix/update-diagnostics-issue-70 branch May 30, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 automation 🚨 Merging this PR could break CI, automerge, proof capture, label sync, or automation. P2 Normal priority bug or improvement with limited blast radius. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug when trying to update from About

1 participant