docs(events): Phase 10 as built — the integrations, and a ceiling per firing #218
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/events-phase-10"
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 docs half of
website#192. Five files.EVENTS.md— §F gains "What Phase 10 settled", and §D/§J are corrected to what was builtFour findings, three of them rules rather than facts about events:
staff" and nothing implemented it — a rehearsal fires exactly the same trigger as the real thing, so it would have mailed every subscriber. The emit envelope now takes an optionalceilingand the send-time G24 gate appliesmeet(declared, emitted).meet('owner', 'staff')is null — they have no common descendant, which is the whole argumentceilings.jsis built on — so the gate refuses every rule. §5.1a rule 3's posture, reused rather than re-argued.ctx.events.participantsand no route: a second write path into a run core is mid-tick on would be a second thing that can race the claim.descriptionis read by a RECIPIENT, not only by an operator. It is the structural projection'sintrofallback, so a line that names its own audience ends up in that audience's inbox.pushon a trigger-only id publishes a tickle to nobody while the send log records it sent. Every stream must be a trigger; a trigger need not be a stream.§D's
event_run_participantsrow is now as built (member_keyNOT NULL,DECIMAL(18,4)score,rank_at—rankis reserved from MariaDB 10.2). §J's Engagement, News, Player-profiles and Leaderboards rows move from planned to built.MODULE_API.md— two envelope members, folded into 1.10.0 in placeparticipantson an action's success envelope, andceilingonctx.events.emit's. Not a 1.11.0 bump:maindeclares 1.9.0, so 1.10.0 has not shipped and the org lead's 2026-09-03 rule — a protocol owes a bump once it has landed onmain; while it is onedgeit is amended in place — applies for the third time. The whole event contract still reaches an author as one number. (I described this as 1.11.0 when I put the decision to the org lead; the rule they had already set says otherwise, and this follows the rule.)EVENTS_PLAN.md— Phase 10 as builtThe six decisions, the four things the tree corrected about the plan (core's seed mechanism is not the module-facing one; the ceilings are §J's; the row is §8.5 not §8.6; two rules seeded not seven), the live walk, and the three defects it found — the dead push channel, the
descriptionthat reached a recipient, andaffectedRowsunderCLIENT_FOUND_ROWS. Plus the one caught before it shipped: a session variable is not a transaction whenquery()takes a pool connection per call.ENGAGEMENT.md§8.5 — the row this resolves"Come back for X — a scheduled event is starting" moves from ❌ "needs a manual/scheduled trigger type" to ✅ built, and says why it has push when the other six
event.triggers do not.BACKEND_DESIGN.md— the eleventh event tableThe section preamble now names which of the later tables have landed in which phase rather than listing them as pending, and
event_runsgainsresults_published_at.Notes
docshas no CI; links and anchors checked by hand.CRLF preserved throughout —
git diff --numstatreports 61/126/42/1/17 added lines against real content diffs rather than whole-file rewrites, and the tree holds no bare LF and no\r\r\n.AI-assisted: Claude Code (Opus 5).
Code: RunicGateway/website#192.
🤖 Generated with Claude Code