docs(website): the email channel and the Teams migration as built (engagement Phase 6) #187
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/engagement-email-channel"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The documentation §6.0b assigns engagement Phase 6. Code: RunicGateway/website#174 · Site: RunicGateway/runicgateway.com#23
ENGAGEMENT.mdPhase 6 as built, the long one. What it records that a reader cannot recover from the diff:
audiences.jssaid as much in its own comment. The three guards that keep it a narrowing input are spelled out, because they are what stop it reading as a hole in the ceiling lattice.notification_channel_prefsholds a row only where a user expressed something, and nobody has ever expressed a stream-level opinion about a Team trigger. Replacement, not intersection, and the argument is written down so it is not "simplified" back.scope_keyis notsubject_key, with the rename that would orphan every unsubscribe link in every mailbox.§4.2b gains the correction inline: a digest-mode recipient gets no outbox row,
engagement_outboxgainedscope_key, and the backfill's replay-safety is a property of the primary key rather than of a flag. §6.0b's Phase 6 row is ticked and now names the three docs it actually owed.Two stale references fixed:
notify.team-post's variable ispostUrl, notthreadUrl— it has to be the nameteam.forum.postdeclares or the mail links nowhere (seedVersion2) — and §3.2's "off unless configured" rule now says where that gate moved.TEAMS.md§6.4 rewritten. The pipeline it described no longer exists as its own thing. It now says which of the three sinks moved and which did not (with the leg vs channel argument for the Discord bridge), where each of the four properties it always claimed lives now, that Team email is OFF until an operator turns a rule on, and what the generalized unsubscribe token does and no longer does. It links out to
ENGAGEMENT.mdfor the mechanism rather than re-specifying it.§6.3 marks
last_digest_atas no longer read — the state moved toengagement_digest_state— while making clear the two preference columns are unchanged and still the authority.BACKEND_DESIGN.mdengagement_digest_statein the table inventory, with why it is a digest's only state and deliberately not a digest queue.engagement_outbox.scope_key, andsubject_key's note sharpened now that the two coexist. The route table gains the canonical/public/engagement/unsubscribepair and keeps/public/teams/unsubscribeas its own row — permanently, because mail is not editable once sent.AI disclosure
Written with Claude Code (Claude Opus 5). The commit carries the
Co-Authored-Bytrailer.