Merge pull request 'docs(website): the engagement release note — three things that arrive switched off' (#199) from docs/engagement-phase-13-upgrade-notes into edge
Reviewed-on: #199 Reviewed-by: Colby Whitlock <whitlocktech@gmail.com>
This commit is contained in:
@@ -13,6 +13,111 @@ action, whether it is required, and what happens if you do nothing.
|
||||
|
||||
---
|
||||
|
||||
## Engagement: rules, an in-app inbox, and three things that arrive switched off
|
||||
|
||||
**Required.** The engagement workstream, Phases 1–12. Three separate actions, and the two that matter
|
||||
most are the ones nothing will tell you about.
|
||||
|
||||
### What changed
|
||||
|
||||
The site now has a general notification engine. A **trigger** fires (a forum post, a house going
|
||||
IDOC, a governor being appointed), a **rule** decides who hears about it and through which
|
||||
**channel**, and a **template** decides what it says. All of it is admin-editable under
|
||||
**Admin → Engagement** — Rules, Audiences, Templates, Triggers, Send Log and Suppressions.
|
||||
|
||||
Players get an in-app inbox at **Account → Notifications**, with per-channel switches at **Account →
|
||||
Notification settings**, and the same inbox in the Android app.
|
||||
|
||||
### What you must do
|
||||
|
||||
Three things, in this order. The first is a required upgrade step for anyone running a shard; the
|
||||
second and third are only required if you were relying on the behaviour they change.
|
||||
|
||||
#### 1. Update the shard — the wire protocol is now 5
|
||||
|
||||
**Required if this deployment has a shard connected.** Update in this order:
|
||||
|
||||
1. the website (this image),
|
||||
2. the **UO module to 0.5.0** — **Admin → Modules**, paste the 0.5.0 release install-manifest
|
||||
URL, then **restart the server**: modules are read from disk at boot, so nothing changes until
|
||||
you do. It declares `coreApi ^1.9.0`, and a core older than that will refuse to *load* it (the
|
||||
install itself still succeeds) — the module then shows as failed on that screen, naming the
|
||||
version it needs. That is the check working, but it means step 1 has to be finished first;
|
||||
3. the **shard**, with `installer update` on the shard host. That is what pairs a protocol-5 sidecar
|
||||
with a protocol-5 overlay; the installer refuses to pair a mismatched one by design.
|
||||
|
||||
**The order matters, and step 2 is the one that starts the clock.** The protocol pin lives in the UO
|
||||
module's schema: on the first boot after the module updates, `uo_link_config.protocol` moves to 5 and
|
||||
the site starts sending `X-UOLink-Version: 5`. A shard still on 4 answers `409` from that moment on,
|
||||
so shard data stops. Nothing is lost and nothing is corrupted — the site degrades to showing the
|
||||
shard offline, exactly as it does when the sidecar is down — but it stays that way until the shard is
|
||||
updated. If you cannot update the shard in the same window, update the site and leave the module on
|
||||
its current version until you can.
|
||||
|
||||
Protocol 5 adds a decay schedule and owner account to `house.decay`, fee and owner state to
|
||||
`vendor.listing`, and a new `account.login.result`. Those three fields are what the shard-driven
|
||||
rules are built on; a shard on 4 could not feed them.
|
||||
|
||||
#### 2. Team notification email arrives switched off
|
||||
|
||||
**Required if your Teams rely on email.** Team email used to send automatically. It now runs through
|
||||
the engagement engine like everything else, as four rules — and like every rule on the platform, they
|
||||
are seeded **disabled**. Nothing mails until an operator switches one on.
|
||||
|
||||
Open **Admin → Engagement → Rules** and enable the Team rules you want. A banner on that screen says
|
||||
the same thing while they are all off, and disappears when one is enabled.
|
||||
|
||||
**Only email moved.** The push tickle and the Discord bridge are unchanged and kept working through
|
||||
the upgrade, so the app and your Discord channel behave exactly as before. Per-member Team
|
||||
preferences and unsubscribe links still apply above the rules.
|
||||
|
||||
#### 3. News push stops until you switch it on
|
||||
|
||||
**Required if you publish news and expect it to notify.** Publishing a news post used to send a push
|
||||
tickle directly. That call is now an engagement trigger, seeded — again — as a **disabled** rule. A
|
||||
deployment that upgrades and does nothing else tickles nobody on the next publish.
|
||||
|
||||
Same screen: **Admin → Engagement → Rules**, enable the news rule.
|
||||
|
||||
This is deliberate rather than an oversight. The alternative was to keep the old direct tickle beside
|
||||
the new trigger for one release, and an exception with no owner is one nobody removes.
|
||||
|
||||
### Behaviour changes that need no action
|
||||
|
||||
- **An unsubscribe link now turns off one channel, not everything.** The old link muted a user
|
||||
outright, which silenced push as well as mail. It now switches off exactly the channel the link was
|
||||
in.
|
||||
- **Email and push are opt-in; the in-app inbox is on.** A user who changes nothing receives in-app
|
||||
items and no mail. That matches the Team preference model already in use, and it is why enabling a
|
||||
rule does not by itself produce a mail storm.
|
||||
- **A rule cannot mail more people than its trigger allows.** Every trigger declares an audience
|
||||
ceiling, and a rule is checked against it — so a staff-only event cannot be given a public
|
||||
audience, whatever the rule says.
|
||||
- **Bounces now suppress an address.** A hard bounce or a rejected recipient stops further mail to
|
||||
that address and is listed under **Admin → Engagement → Suppressions**, which is also the only
|
||||
screen that can lift one. An address that has stopped receiving mail is the first thing to check
|
||||
there.
|
||||
|
||||
### If you do nothing
|
||||
|
||||
The site upgrades, the in-app inbox works, and no mail is sent — because every rule is off and email
|
||||
needs both a transport (see the SMTP entry below) and a user who opted in. What you lose silently is
|
||||
**Team email** and **news push**, both of which were sending before the upgrade and stop at it. If
|
||||
you also leave the UO module on its current version, the shard keeps working on protocol 4 and none
|
||||
of the shard-driven rules exist yet.
|
||||
|
||||
### Data
|
||||
|
||||
Nothing is dropped and no row is deleted. New tables cover rules, segments, templates, the outbox,
|
||||
the send log, cooldowns, suppressions, per-channel preferences and the in-app inbox.
|
||||
`team_notification_prefs` is kept and still consulted — per-Team granularity did not move.
|
||||
|
||||
**Nothing in this schema expires on its own.** Finished outbox rows, the send log and the suppression
|
||||
list are kept until you remove them; there is no retention sweep. On a busy deployment those tables
|
||||
grow without limit, which is worth knowing before it is worth acting on.
|
||||
|
||||
---
|
||||
|
||||
## Email addresses are now unique, and some accounts may lose theirs
|
||||
|
||||
**Required only if the dashboard says so.** Engagement Phase 1b.
|
||||
|
||||
Reference in New Issue
Block a user