Fix Launch at Login disable for pending approval#1469
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 12, 2026, 5:38 PM ET / 21:38 UTC. Summary Reproducibility: Partly: source inspection and injected tests provide a high-confidence reproduction of the incorrect decision path, but the contributor could not create a real Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Keep the focused status matrix and tests, then merge after a maintainer either verifies a real pending-approval removal with redacted runtime evidence or explicitly accepts the unavailable-state proof limitation. Do we have a high-confidence way to reproduce the issue? Partly: source inspection and injected tests provide a high-confidence reproduction of the incorrect decision path, but the contributor could not create a real Is this the best way to solve the issue? Yes at the implementation level: a small status-aware decision seam is the narrowest maintainable correction, and the latest head avoids unnecessary AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1dfd7d90f3f1. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
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
|
979facb to
644b4f1
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
644b4f1 to
358f617
Compare
|
Maintainer fixup applied at exact head The state handling now follows the ServiceManagement contract:
Verification:
The branch was rebased onto current |
Summary
.requiresApprovalby unregistering every status except.notRegistered.LaunchAtLoginManagerstatus handling.Out of scope
Verification
swift test --filter LaunchAtLoginManagerTestsgit diff --checkmake checkRuntime proof
Packaged the PR build for local macOS validation and verified the staged app bundle:
.build/package/CodexBar.appcom.steipete.codexbar644b4f12codesign --verify --deep --strict --verbose=2 .build/package/CodexBar.apppassedServiceManagement status was measured inside the running packaged app with LLDB:
.notRegistered=SMAppServiceStatus(rawValue: 0).enabled=SMAppServiceStatus(rawValue: 1).requiresApproval=SMAppServiceStatus(rawValue: 2).notFound=SMAppServiceStatus(rawValue: 3)launchAtLogin=true, launching.build/package/CodexBar.appregistered the app and reported.enabled/rawValue: 1.CodexBar.appunder Open at Login.CodexBar.appfrom Open at Login through System Settings changed the live status to.notFound/rawValue: 3on this machine, not.requiresApproval.launchAtLogin=trueregistered it again and returned.enabled/rawValue: 1.launchAtLogin=falseafter UI removal did not produce a login-item error in the checked log slice.I could not reproduce a real
.requiresApprovalstate locally through the normal System Settings Open at Login flow; this host transitions through.enabledand.notFoundfor the available UI operations. The unit test still covers the.requiresApprovaldecision path directly, and the packaged run confirms the build/register/remove surface is wired to the real ServiceManagement API.Notes from packaging:
Developer ID Application: Peter Steinberger (Y5PE65HELJ): no identity found.CODEXBAR_SIGNING=adhocproduced a signed staged bundle at.build/package/CodexBar.app; the final rootCodexBar.appreplacement failed because the existing root bundle has permission drift, so runtime proof used the verified staged bundle directly.