@classytic/arc-notifications 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/dist/index.d.mts +384 -61
- package/dist/index.mjs +643 -229
- package/llms.txt +29 -0
- package/package.json +8 -6
- package/skills/arc-notifications/SKILL.md +129 -0
- package/skills/arc-notifications/references/date-rules.md +55 -0
- package/skills/arc-notifications/references/delivery-log.md +33 -0
- package/skills/arc-notifications/references/feed.md +55 -0
- package/skills/arc-notifications/references/triggers-templates.md +36 -0
package/README.md
CHANGED
|
@@ -129,6 +129,21 @@ sseHub.onConnect((userId, orgId) => backfill.onConnect(userId, orgId)); // debou
|
|
|
129
129
|
badge's axis). Both stay host-owned in the repository.
|
|
130
130
|
- All realtime is **best-effort on top of the durable feed** — a dead socket never
|
|
131
131
|
fails a request or a send; clients converge via `GET /notifications/`.
|
|
132
|
+
- **Cursor replay.** Pass the client's last-seen time on connect —
|
|
133
|
+
`backfill.onConnect(userId, orgId, { since: req.headers['last-event-id'] })` — and
|
|
134
|
+
a repository that also implements `listSince(org, user, since, limit)` replays the
|
|
135
|
+
gap, including rows an earlier connection received but dropped; they merge with the
|
|
136
|
+
claimed rows into the same single bulk event.
|
|
137
|
+
- **List envelope and verbs.** `inAppFeedResource({ listEnvelope: 'offset' })` answers
|
|
138
|
+
repo-core's `OffsetPaginationResult` (`feedListResult` is the same conversion);
|
|
139
|
+
`{ actions: true }` also mounts `markRead` / `markAllRead` as arc action-router verbs.
|
|
140
|
+
- **One push per recipient.** The package calls `port.push` once per recipient and event
|
|
141
|
+
and never publishes on a bus itself. If your port forwards frames onto an event bus,
|
|
142
|
+
give each frame its own correlation id (it is a transport hop, not a second publish of
|
|
143
|
+
one logical event), or arc's dev duplicate-publish detector will warn on every
|
|
144
|
+
multi-recipient notification.
|
|
145
|
+
- **Clock.** `createUnreadCountCache({ clock })` and
|
|
146
|
+
`createRepositoryDeliveryLog(repo, { clock })` take a `{ now(): Date }`.
|
|
132
147
|
|
|
133
148
|
### 5. Durable dispatch — crash-safe bulk sends (10k+)
|
|
134
149
|
|