feat: add channel mention notifications - #116
Conversation
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Codex review: needs maintainer review before merge. Reviewed August 1, 2026, 7:47 PM ET / 23:47 UTC. ClawSweeper reviewWhat this changesAdds per-channel Merge readinessKeep open for maintainer review: the patch is a coherent, proof-backed feature, but it creates durable SQLite/PostgreSQL schema, REST/OpenAPI/SDK, and realtime-event contracts that current main does not provide and that need explicit product sponsorship before merge. Priority: P2 Review scores
Verification
How this fits togetherClickClack creates durable channel and thread message events in its Go API, then delivers them through realtime clients and optional Pushover notifications. This PR adds per-user channel preferences between event creation and those alert outputs, with the web client exposing and enforcing the selected mode. flowchart LR
A[Channel or thread message] --> B[Mention resolution]
B --> C[Durable event metadata]
C --> D[Channel preference lookup]
D --> E[Pushover recipients]
D --> F[Browser and desktop alerts]
G[Channel header control] --> D
Decision needed
Why: The patch is not repairing an established broken contract; it adds durable user settings and externally consumable API/event surface whose long-term support boundary is a maintainer product decision. Before merge
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: If maintainers want per-channel notification controls as a supported product feature, land the branch with the existing migration and end-to-end coverage while treating the REST, SDK, and realtime fields as stable contracts. Do we have a high-confidence way to reproduce the issue? Not applicable as a bug reproduction: this PR adds a new feature. The PR body supplies a focused real-server Playwright run that reports one passing scenario across muted, mentions, all, remote preference changes, thread replies, and notification navigation. Is this the best way to solve the issue? Unclear pending product direction: the implementation is internally coherent and preserves AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 4843afe2e8eb. LabelsLabel justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (25 earlier review cycles; latest 8 shown)
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 423a41fac0
ℹ️ 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".
423a41f to
eb9abbc
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: eb9abbc3c9
ℹ️ 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".
eb9abbc to
62b88b8
Compare
|
@codex review |
62b88b8 to
668fe88
Compare
|
@codex review |
668fe88 to
3413a00
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3413a00928
ℹ️ 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".
3413a00 to
85a9a94
Compare
Summary
all,mentions, andmutednotification preferences;mainand refresh the embedded web client.Real behavior proof
The focused Playwright scenario runs against the real ClickClack Go server and embedded web app. It:
muted, posts as a second real user, and observes zero browser notifications;mentions, reloads, and verifies the persisted UI state;mentioned_user_idsand exactly one browser notification appears;mentionstomutedand thenall, proving the already-running client suppresses and resumes alerts without a reload or channel selection;allis active and verifies a third notification containing the real reply body, provingthread.reply_createduses the durable author/body payload and the same channel preference path;Command and result:
The captured browser proof shows the live channel header in the muted state:
The screenshot above is attached directly to this PR description; the proof image is not part of the feature branch.
Validation
The seven current review findings are covered by parser tests, SQLC query guards, handle-filtered composer sources, in-memory preference fallback, post-fetch notification rechecks, selected-channel preference convergence, and durable thread-reply payload coverage.
Current branch head
4608f047is rebased onto upstreammainat4843afe2.