Skip to content

fix(notifications): make Enable Notifications work; group attention policy by role - #47

Merged
mthines merged 7 commits into
mainfrom
fix/notification-permission-and-policy-groups
Oct 3, 2026
Merged

mthines merged 7 commits into
mainfrom
fix/notification-permission-and-policy-groups

Conversation

@mthines

@mthines mthines commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Why

"Enable Notifications…" did nothing: CI release builds (no Developer ID) shipped with only the linker's Mach-O signature — no bound Info.plist, no sealed resources — so macOS rejected requestAuthorization without ever prompting. Separately, the Attention Policy list mixed events about your PRs and others' PRs with no way to tell them apart.

What changed

  • release-ci.sh ad-hoc signs the bundle when no Developer ID is configured (Gatekeeper still treats it as unsigned).
  • A rejected permission request now shows its error under the button instead of only print()ing.
  • Attention Policy is grouped into Your PRs / PRs You Review, mirroring the deck's role split.
  • "New review or comment" is split by role (newCommentOnReviewPR); a v2 migration copies the stored level, and migration rules are now gated on the stored version so a bump never re-runs an older rule.

How to verify

  • codesign -dv on a CI-style Release build: Identifier=com.mainline.github-pr-notifier, Info.plist entries=28, sealed resources present (was not bound / none).
  • AttentionPolicyChecks pass via a swiftc harness; the new version-gating assertion fails when the gate is removed.

Notes for reviewers

"Ready for review" sits under PRs You Review but also fires for your own draft→ready; left as-is, worth a follow-up.

…d; group attention policy by role

- release-ci.sh: ad-hoc sign the bundle when no Developer ID is configured.
  The linker-only signature has no bound Info.plist, so macOS rejected
  requestAuthorization without a prompt and 'Enable Notifications' did nothing.
- Surface a rejected permission request in Settings instead of print().
- Attention Policy grouped into Your PRs / PRs You Review; the comment event
  is split by role (newCommentOnReviewPR), with a v2 migration copying the
  stored level.
@mthines

mthines commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner Author

✅ No issues found

Third pass. The delta only updates the CLAUDE.md file map, which now matches the code; the prior Architecture-tree thread is closed and no new issues were found.

Checked: 8 of 8 changed files read · 3 possible issues → 0 confirmed → 0 posted

Progress: open review threads 1 → 1 → 0 across the last 3 reviews

Review details
Gate Status Details
Description vs. code ✅ Description covers the signing fix, error caption, role grouping, and v2 comment split.
Prior review feedback ✅ Earlier review comments are resolved.
Documentation ✅ CLAUDE.md, docs/release.md and doc comments describe the new grouping, migration and signing.
Self-review signals ✅ No debug logs, leftover TODOs, or unreviewed stubs.
Code review ✅ The multi-lens review found no blocking issues.

Found

Quality — produced 3 → posted inline 0 · cleared 0 · carried forward 0 · deferred 0 · below-bar 0
Dropped — 2 below-bar
Optimality — ran — approach is optimal: role grouping reuses the deck split, migration is a gated pure rule
Standards — ran — 1 governing doc, 46 normative bullets, 0 findings
Measurability — ran — quiet: no web/mobile/api/worker path (macOS menu-bar app)

Run

full · 8 lines in delta · tier deep · depth checkout
⚠️ 1 prepare-time anomaly (gh pr checks unreadable — CI state is informational only, so this never grades)
Integrations — not activated — no manifest or lockfile in the diff
Memories — 3 knowledge/hotspot records read; 0 relevance rules fired

Nothing to report — severity, 0 files skipped.

pr-reviewer · commit 24220f6 · full review · how these findings are produced · updated Oct 3, 2026 2:54pm UTC

Comment thread Mainline/Mainline/Models/AttentionPolicy.swift Outdated
Comment thread CLAUDE.md Outdated
…ion error

Addresses review comment by pr-reviewer (thread PRRT_kwDOTPehCs6oomUZ)
…ission-and-policy-groups

# Conflicts:
#	CLAUDE.md
@mthines
mthines marked this pull request as ready for review October 3, 2026 14:58
@mthines
mthines merged commit d6f9f25 into main Oct 3, 2026
4 checks passed
@dash0-dev

dash0-dev Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Darkplane auto-approval is enabled for this repository (mode: Auto-approve).

Trigger an evaluation for this pull request when it is ready:

Run auto-approval evaluation

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.

1 participant