Skip to content

feat: Digest email lines for request notifications - EXO-89486_EXO-89487 - eXIP7.3.0.22 - #493

Merged
azayati merged 2 commits into
feature/experiencefrom
exip-7.3.0.22-us06-digest-lines
Sep 4, 2026
Merged

azayati merged 2 commits into
feature/experiencefrom
exip-7.3.0.22-us06-digest-lines

Conversation

@azayati

@azayati azayati commented Sep 4, 2026

Copy link
Copy Markdown
Member

eXIP 7.3.0.22 Digest Mail Notifications — US06 "Daily digest email content" / US07 weekly (EXO-89486): the email lines of the notification types this addon owns. Spec: Tribe note 50469 §4 Assembly. Depends on the SPI of Meeds-io/commons#775 (DigestLinePlugin), to be merged first.

What it does

  • ProcessesDigestLinePlugin for CreateRequestPlugin and RequestCommentPlugin: New request: "{title}" ({process}) and {actor} commented on your request "{title}", linking to the request / its comments.
  • The two notification plugins now store the request id (REQUEST_ID, set by the two listeners) — the digest keeps ids only and reads the request fresh at send time.
  • ProcessesService.getWorkById(long workId): an id-only read for the platform (the per-user read only returns the requests the user created, and a new request is announced to the managers). NotificationUtils.getRequestCommentsLink now returns a String.

The line plugin is a Kernel plugin declared in XML next to the digest category (addLineProvider on DigestCategoryRegistry): at send time commons asks it for one line per waiting item, built fresh from the stored ids; a vanished object gives no line and is not counted. Wordings are text-only keys with {i} placeholders in the plugin's own notification bundle, the arguments are escaped by commons.

Self-review close-out (one independent round over the five addon branches + commons)

Finding Status
🔴 getWorkById(recipient, id) returns null for managers, so no "New request" line could ever be built ✅ id-only service read, test with a recipient who is not the creator
🟢 getRequestCommentsLink returned Object String

Verified conform: parameter names match the keys the notification plugins store; the services are looked up lazily from the Kernel on the job thread; links are built without an HTTP request; each key lives in the bundle declared as the plugin's bundlePath; the XML block sits in the existing DigestCategoryRegistry target; wordings equal the board text.

Classification: N2 (addon plugin over an existing SPI; the two notification plugins and listeners gain an additive REQUEST_ID argument).

Knowledge: none — the domain doc fragments of this lot (digest line plugin per addon) are drafted with the last PR of the lot.

🤖 Generated with Claude Code

azayati and others added 2 commits September 3, 2026 23:18
…- eXIP7.3.0.22

One Kernel line plugin declared next to the digest category: the email line of
each digest notification type is built at send time from the stored ids, a
vanished object gives no line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@azayati azayati changed the title feat: Digest email lines for request notifications - EXO-89486 - eXIP7.3.0.22 feat: Digest email lines for request notifications - EXO-89486_EXO-89487 - eXIP7.3.0.22 Sep 4, 2026
@azayati azayati changed the title feat: Digest email lines for request notifications - EXO-89486_EXO-89487 - eXIP7.3.0.22 feat: Digest email lines for request notifications - EXO-89486 - eXIP7.3.0.22 Sep 4, 2026
@azayati azayati changed the title feat: Digest email lines for request notifications - EXO-89486 - eXIP7.3.0.22 feat: Digest email lines for request notifications - EXO-89486_EXO-89487 - eXIP7.3.0.22 Sep 4, 2026
@azayati
azayati merged commit 42f1217 into feature/experience Sep 4, 2026
3 checks passed
@azayati
azayati deleted the exip-7.3.0.22-us06-digest-lines branch September 4, 2026 15:06
exo-swf pushed a commit that referenced this pull request Sep 7, 2026
azayati added a commit that referenced this pull request Sep 15, 2026
…487 - eXIP7.3.0.22 (#493)

(cherry picked from commit 7802a1c)
(cherry picked from commit fa6ce17)
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