docs(events): Phase 5 as built — conditions, phase advancement and the panel #213
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/events-phase-5"
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 Event System Phase 5. Code: RunicGateway/website#187.
EVENTS.md§C — the condition language. The paragraph promising
engagement/conditions.jsgains the note that it was reused unchanged, and what Phase 5 actually added: not a grammar, but a place the words are read. The same labels that fill the rule editor's dropdowns render the diagnosis panel, sogtesays "is at least" in both places because there is only one place it is written down.§D — the eleventh table.
event_run_phase_gates, and why it is a table rather than a query: it holds the one fact in this feature that is not derivable from a row somebody already wrote.{ on: …, count: 3 }counts things that happen between two ticks, and the runner is not running when they happen.§E — a new subsection, Advance conditions, and the two writers a gate has. The two closed shapes with their field grammars and the normalisation argument (
'120m'is stored as'2h', for the reasondaysis normalised into week order). Then the three things §E could not say before:ongate because a firing between two ticks is not observable from either of them, and a tally in a process's memory is one a restart silently zeroes. The tick closes anaftergate and reads both.EVENT_PHASE_STALL_MS,health: 'stalled', and why it must be loud (a held run keeps its concurrency key, so every later occurrence goesmissedbehind it). Plus health as a high-water mark, now enforced rather than observed, and a dormant gate on the rule a dormant action already follows.Also, one line in the tick's description: a phase advances on every step terminal and, if it authored one, its gate — additional, never a replacement.
§I — the panel and the seventh control. The "six exist, two do not" note becomes "seven exist, one does not", with
advance's three refusals written out as the design they are. Then the panel itself: why it sits above the step list, why the near miss is the valuable half, and why its sentence is rendered on the server — the one place this feature hands the client text rather than a vocabulary.§L — one new row. A phase's advance condition never fires, with the consequence that makes it more than cosmetic.
§ API surface.
advanceleaves the not-built list with its guard described;cataloggains the trigger catalog and theadminOnly-vs-admin, editorreason it is served there rather than borrowed. The derived-field note gains a third member,gates.§ Observability. The panel is marked built, and two rows join the recording table — the gate row itself, and the three new log kinds.
The phase table. P5 ticked.
EVENTS_PLAN.mdPhase 5 marked complete, in the shape Phases 0–4 use: the four org-lead decisions, the three things the build settled, the MariaDB left-to-right SET-evaluation defect that only a real database found (and it was this phase's own statement), the two things that had to change underneath, the verified numbers, the live walk, and the three defects that walk turned up. The Trap paragraph keeps its warning and gains a line saying how it was held.
Phase 6's note gains one clause:
advancetook its gate in Phase 5.Checked by hand
docshas no CI, so: every anchor this touches resolves, and every route, column, env var and file path named here exists on website#187 — including the new### Advance conditions…heading, which nothing links to yet. Diff is 132/29 across the two files with no CRLF artefact, verified against the real content diff rather than--numstatalone.