Repository navigation
feat(notifications): tell targets when a routine's run fails or leaves graph changes to review - #560
Merged
Merged
Conversation
…s graph changes to review Two new events, routine.failed and routine.proposed, sent through Matterbridge, signed webhooks, Slack and Discord to each namespace a routine runs over. Default events for new targets stay as they were. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnPBc76gCvHKeWvSLd1L7h
21 of 23 tasks
…, now that #400 is released Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AnPBc76gCvHKeWvSLd1L7h
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Description
Before: a routine's run that failed (say the nightly graph-organising run, when the model server was down) or that proposed merges for review stayed silent until someone opened the Routines page.
After: a namespace's notification target can pick two new events,
routine.failedandroutine.proposed, and gets a message through Matterbridge, a signed webhook, Slack or Discord:/routines/changes?run=N.Each namespace the routine runs over (every one, for a routine over all) gets its own message; proposed changes are counted in the namespaces they touch, as they stand when the notifier looks, so a run whose proposals were all decided already isn't sent. Errors can carry outside text, so links in the chat text are defanged like approvals'.
How: a fourth source in the notifier's scan (
routine_runbyfinished_at, only runs that areerror/partlyor have proposed changes), with the same claim-once, paging and retry machinery as runs, additions and approvals. A new source starts from now, so existing installs don't replay old runs. Default events for new targets are unchanged.Motivation and Context
Parked backlog item "Routine run alerts", started by Adeel's "Start all" on 2026-10-18.
Types of changes
!in the title)Checklist:
make hookschecks it on commit).test_routine_runs_that_fail_or_leave_changes_to_review_are_told)docs/accordingly. (notifications.md events table, processing.md Routines)## UnreleasedinCHANGELOG.md.Done questions (AGENTS.md)
eventson targets), and webhooks deliver them to agents as signed JSON.make openapi).Local checks: full backend suite 1674 passed (in-memory SurrealDB);
ci/local-ci.shNext.js, pre-commit and PR title jobs pass (server and upgrade jobs need Docker, not available in this container).Generated by Claude Code