Skip to content

feat(alerts): a gateway sends chosen fleet events to generic webhook destinations - #741

Merged
V3RON merged 5 commits into
feature/707-adrfrom
task/719
Oct 20, 2026
Merged

V3RON merged 5 commits into
feature/707-adrfrom
task/719

Conversation

@V3RON

@V3RON V3RON commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Closes #719

Status

Implement: done (22/22 green) Review: round 2 clean, 3 blocking fixed in round 1 and 1 CI fix Hardware: n/a Gate: waiting for the stack
Next: none until #718 and this PR merge with the stack

Done when

  • CI is green, dependency-cruiser passes with alerts-imports-bus-ports-core-only and not-alerts (.dependency-cruiser.mjs).
  • A loopback receiver gets a signed worker.connected from a gateway with a generic destination (gateway-fleet.e2e.test.ts, "a worker joining a gateway with a generic destination ...").
  • simlock config set gateway.alerts.destinations '[...http://n8n.internal/hook...]' prints the URL error and exits 2 (config.test.ts, "loadConfig refuses a bad url ...").
  • docs/CONFIGURATION.md documents every field, the URL rule, the eleven events, the headers, the signature check and the retry rule (new "Alerts" section).

Assumptions

  • Assumption: workerLabel for AlertFormatDefinition.build — createAlerts has no such option in the spec, so it passes the id through unchanged; generic does not use it, and A gateway sends fleet events to Slack #720 supplies the real function.

  • Open: the e2e "worker posts nothing" case cannot fail today, since a worker has no way to receive a poster; the claim holds by construction in main.ts.

Review

Spec review: 1 blocking, 1 fixed, 0 notes. Code review: 2 blocking, 2 fixed, 0 notes. Claims review: 0 blocking, 0 fixed, 0 notes.
Rounds: 2. Tokens: 3.5M.
Runs: 13. Cost USD: 6.3443. Agent seconds: 3517.

Assessment: complete

Written by an agent.

@V3RON
V3RON marked this pull request as ready for review October 20, 2026 07:05
@V3RON
V3RON added this pull request to stack #743 October 20, 2026 07:05
V3RON added 5 commits October 20, 2026 10:24
…destinations (#719)

Config, port, alerts module with signed generic format, wiring in the gateway
composition root, docs and tests.
…dler defers the post, poster request and redirect, password-only URL (#719)
…overs same-tick enqueue, drop extra registry test (#719)
@V3RON
V3RON merged commit 7b602f9 into main Oct 20, 2026
50 of 63 checks passed
@V3RON
V3RON deleted the task/719 branch October 20, 2026 08:39
V3RON added a commit that referenced this pull request Oct 20, 2026
Closes #720

### Status

Implement: done (14/14 green) Review: round 2 clean, fix-check clean (R4
fixed in 3f6a9ac) Hardware: n/a Gate: waiting for the stack
Next: none until #718, #741 and this PR merge with the stack

## Done when

- [ ] CI is green on the final head.
- [x] A Slack destination receives the eleven events as `{"text": ...}`
posts with Slack-escaped worker text (`alerts.test.ts`, the Slack format
cases).
- [x] `docs/CONFIGURATION.md` describes the Slack body and headers,
scoped to Slack destinations.

## Assumptions

- None.

## Review

Spec review: 0 blocking, 0 fixed, 0 notes. Code review: 3 blocking, 3
fixed, 0 notes. Claims review: 1 blocking, 1 fixed, 0 notes.
Rounds: 2. Tokens: 5.6M.
Runs: 13. Cost USD: 3.8631. Agent seconds: 2569.

Assessment: complete

*Written by an agent.*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A gateway sends chosen fleet events to a signed generic webhook

1 participant