Problem
PR review feedback notifications (F140 ReviewFeedbackTaskSpec) silently drop all reviews from users with authorAssociation = OWNER or MEMBER. This means maintainer reviews are never delivered — only bot/external reviews trigger notifications.
Observed behavior
Root cause
ReviewFeedbackTaskSpec.ts:508-534 applies F168 Repo Inbox's decideDelivery() policy to PR review feedback:
// F168 Phase B: apply delivery policy — OWNER/MEMBER activity is silent-log
const decision = decideDelivery({
state: 'in_progress',
eventKind: 'pr.review_submitted',
authorAssociation: c.authorAssociation,
});
if (decision === 'silent-log') return false; // ← maintainer review silently dropped
community-delivery-policy.ts:25,59:
const MAINTAINER_ASSOCIATIONS = new Set(['OWNER', 'MEMBER']);
// Rule 2: maintainer-authored activity is silent regardless of case state
if (MAINTAINER_ASSOCIATIONS.has(input.authorAssociation)) {
return 'silent-log';
}
Why this is wrong
Two contexts use decideDelivery() with opposite requirements:
| Context |
Purpose |
Maintainer activity should? |
| Repo Inbox (F168) |
Monitor community contributions; own team's activity = noise |
silent-log ✅ |
| PR Review Feedback (F140) |
Cat waiting for PR review; maintainer review = exactly what's awaited |
wake-owner ❌ wrong |
Existing correct filter
ReviewFeedbackTaskSpec already has isEchoComment / isEchoReview — these correctly filter self-authored echoes (the cat's own comments posted via GitHub API). This is the right granularity: only filter yourself.
Proposed fix
Remove the decideDelivery() call from ReviewFeedbackTaskSpec.ts (lines 508-534, both comment and review filtering). PR review tracking is opt-in (cat explicitly registered) — all reviewer feedback should be delivered, regardless of reviewer's repo association. The existing isEchoComment / isEchoReview + isNoiseComment filters are sufficient.
Alternatively, add a context: 'repo-inbox' | 'pr-tracking' parameter to decideDelivery() and only apply OWNER/MEMBER silencing in repo-inbox context.
Files
packages/api/src/infrastructure/email/ReviewFeedbackTaskSpec.ts — lines 508-534 (remove decideDelivery calls)
packages/api/src/domains/community/community-delivery-policy.ts — reference only (policy itself is correct for Repo Inbox)
Problem
PR review feedback notifications (F140
ReviewFeedbackTaskSpec) silently drop all reviews from users withauthorAssociation=OWNERorMEMBER. This means maintainer reviews are never delivered — only bot/external reviews trigger notifications.Observed behavior
thread_mqomaaf0htcblmut(PR fix: batch fix #991 + #966 + #992 + #995 + #1002 + Skill tab UI consistency #993):chatgpt-codex-connector[bot]reviews delivered ✅, maintainer reviews silently dropped ❌Root cause
ReviewFeedbackTaskSpec.ts:508-534applies F168 Repo Inbox'sdecideDelivery()policy to PR review feedback:community-delivery-policy.ts:25,59:Why this is wrong
Two contexts use
decideDelivery()with opposite requirements:silent-log✅wake-owner❌ wrongExisting correct filter
ReviewFeedbackTaskSpecalready hasisEchoComment/isEchoReview— these correctly filter self-authored echoes (the cat's own comments posted via GitHub API). This is the right granularity: only filter yourself.Proposed fix
Remove the
decideDelivery()call fromReviewFeedbackTaskSpec.ts(lines 508-534, both comment and review filtering). PR review tracking is opt-in (cat explicitly registered) — all reviewer feedback should be delivered, regardless of reviewer's repo association. The existingisEchoComment/isEchoReview+isNoiseCommentfilters are sufficient.Alternatively, add a
context: 'repo-inbox' | 'pr-tracking'parameter todecideDelivery()and only apply OWNER/MEMBER silencing inrepo-inboxcontext.Files
packages/api/src/infrastructure/email/ReviewFeedbackTaskSpec.ts— lines 508-534 (removedecideDeliverycalls)packages/api/src/domains/community/community-delivery-policy.ts— reference only (policy itself is correct for Repo Inbox)