Skip to content

chore(ci): route spartan/spartan-v5 merge-train notifications to #team-alpha-ci - #24963

Merged
spalladino merged 2 commits into
merge-train/spartanfrom
cb/move-spartan-ci-notifs-team-alpha-ci
Jul 24, 2026
Merged

chore(ci): route spartan/spartan-v5 merge-train notifications to #team-alpha-ci#24963
spalladino merged 2 commits into
merge-train/spartanfrom
cb/move-spartan-ci-notifs-team-alpha-ci

Conversation

@AztecBot

@AztecBot AztecBot commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

What

Two related changes for the spartan / spartan-v5 merge-train Slack notifications:

  1. Route them to #team-alpha-ci instead of #team-alpha, so the team channel stops receiving CI noise.
  2. Stop silently dropping failed Slack posts in ci3/slack_notify, so a mis-delivered notification (e.g. the bot isn't a member of the target channel) is visible in the CI log instead of vanishing.

(1) Notification sites re-routed

File Notification Before → After
ci3/merge_train_failure_slack_notify "PR merged into …", CI failure, and dequeue notifications for spartan / spartan-v5 (each also kicks off a ClaudeBox investigation) #team-alpha#team-alpha-ci
.github/workflows/merge-train-stale-check.yml daily "merge-train/spartan… has not merged into next/v5-next" stale alert #team-alpha#team-alpha-ci
.github/workflows/network-healthcheck.yml "Starting network healthcheck …" kickoff + the ClaudeBox respond_to_user summary #team-alpha#team-alpha-ci
scripts/socket-fix-ci.sh Socket dependency-vulnerability fix notification #team-alpha#team-alpha-ci
ci3/merge_train_stale_check usage-example comment only updated for consistency

ci3/run_test_cmd — flake notifications for spartan / spartan-v5 already post to #team-alpha-ci (since #23219, 2026-05-12).

(2) Surface Slack post failures (ci3/slack_notify)

Previously the chat.postMessage curl ended in &>/dev/null, so any failure — most commonly not_in_channel when the bot isn't a member of the target channel — disappeared with no trace. This is the likely reason flake notifications to #team-alpha-ci were never observed despite the routing being correct: the posts were failing silently. The script now captures the API response and logs a clear error to stderr (slack_notify: failed to post to Slack channel '<chan>': <error>) on any non-ok response or curl/network failure. It stays best-effort — the failure is logged, the caller is not failed.

Base & backport

Based on merge-train/spartan (targets next), and labeled backport-to-v5-next so the same change is carried over to the v5-next line. The network-healthcheck and merge-train-stale-check schedules ultimately run from the default branch once this reaches next via the train; the per-train CI scripts (merge_train_failure_slack_notify, slack_notify, socket-fix-ci.sh) run from the checked-out train head.

Left untouched (intentionally)

  • .claude/skills/merge-trains/SKILL.md team-mapping table, ci3/dashboard/.../ci-health-report.html, spartan/testnet-runbook.md — these reference the owning team (#team-alpha) or are a manual human runbook step, not automated CI notifications.
  • Other merge-train channel mappings (#team-bonobos, #honk-team, #help-ci, #dev-rels, #team-fairies) are unrelated and unchanged.

Notes

  • No new Slack scopes are required — every call uses the same SLACK_BOT_TOKEN + chat.postMessage. The bot must be a member of #team-alpha-ci for delivery; once (2) lands, a missing membership shows up as a not_in_channel line in the CI log. The ClaudeBox app must also be a member so the healthcheck summary and failure/dequeue kickoff replies can post.

Created by claudebox · group: slackbot · requested by Santiago Palladino · Slack thread

@AztecBot AztecBot added ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure claudebox Owned by claudebox. it can push to this PR. labels Jul 24, 2026
@spalladino
spalladino marked this pull request as ready for review July 24, 2026 16:41
@spalladino
spalladino requested a review from charlielye as a code owner July 24, 2026 16:41
@AztecBot
AztecBot changed the base branch from next to merge-train/spartan July 24, 2026 16:43
@AztecBot
AztecBot force-pushed the cb/move-spartan-ci-notifs-team-alpha-ci branch from d631bba to 1c87f3c Compare July 24, 2026 16:43
@spalladino
spalladino merged commit 40e0206 into merge-train/spartan Jul 24, 2026
26 checks passed
@spalladino
spalladino deleted the cb/move-spartan-ci-notifs-team-alpha-ci branch July 24, 2026 18:36
AztecBot added a commit that referenced this pull request Jul 24, 2026
…m-alpha-ci (#24963)

## What

Two related changes for the spartan / spartan-v5 merge-train Slack
notifications:

1. **Route them to `#team-alpha-ci`** instead of `#team-alpha`, so the
team channel stops receiving CI noise.
2. **Stop silently dropping failed Slack posts** in `ci3/slack_notify`,
so a mis-delivered notification (e.g. the bot isn't a member of the
target channel) is visible in the CI log instead of vanishing.

## (1) Notification sites re-routed

| File | Notification | Before → After |
|---|---|---|
| `ci3/merge_train_failure_slack_notify` | "PR merged into …", CI
failure, and dequeue notifications for spartan / spartan-v5 (each also
kicks off a ClaudeBox investigation) | `#team-alpha` → `#team-alpha-ci`
|
| `.github/workflows/merge-train-stale-check.yml` | daily
"`merge-train/spartan…` has not merged into `next`/`v5-next`" stale
alert | `#team-alpha` → `#team-alpha-ci` |
| `.github/workflows/network-healthcheck.yml` | "Starting network
healthcheck …" kickoff + the ClaudeBox `respond_to_user` summary |
`#team-alpha` → `#team-alpha-ci` |
| `scripts/socket-fix-ci.sh` | Socket dependency-vulnerability fix
notification | `#team-alpha` → `#team-alpha-ci` |
| `ci3/merge_train_stale_check` | usage-example comment only | updated
for consistency |

`ci3/run_test_cmd` — flake notifications for spartan / spartan-v5
**already** post to `#team-alpha-ci` (since
[#23219](#23219),
2026-05-12).

## (2) Surface Slack post failures (`ci3/slack_notify`)

Previously the `chat.postMessage` curl ended in `&>/dev/null`, so any
failure — most commonly `not_in_channel` when the bot isn't a member of
the target channel — disappeared with no trace. This is the likely
reason flake notifications to `#team-alpha-ci` were never observed
despite the routing being correct: the posts were failing silently. The
script now captures the API response and logs a clear error to stderr
(`slack_notify: failed to post to Slack channel '<chan>': <error>`) on
any non-`ok` response or curl/network failure. It stays best-effort —
the failure is logged, the caller is not failed.

## Base & backport

Based on **`merge-train/spartan`** (targets `next`), and labeled
**`backport-to-v5-next`** so the same change is carried over to the
`v5-next` line. The `network-healthcheck` and `merge-train-stale-check`
schedules ultimately run from the default branch once this reaches
`next` via the train; the per-train CI scripts
(`merge_train_failure_slack_notify`, `slack_notify`, `socket-fix-ci.sh`)
run from the checked-out train head.

## Left untouched (intentionally)

- `.claude/skills/merge-trains/SKILL.md` team-mapping table,
`ci3/dashboard/.../ci-health-report.html`, `spartan/testnet-runbook.md`
— these reference the owning **team** (`#team-alpha`) or are a manual
human runbook step, not automated CI notifications.
- Other merge-train channel mappings (`#team-bonobos`, `#honk-team`,
`#help-ci`, `#dev-rels`, `#team-fairies`) are unrelated and unchanged.

## Notes

- No new Slack scopes are required — every call uses the same
`SLACK_BOT_TOKEN` + `chat.postMessage`. The bot must be a **member of
`#team-alpha-ci`** for delivery; once (2) lands, a missing membership
shows up as a `not_in_channel` line in the CI log. The **ClaudeBox app**
must also be a member so the healthcheck summary and failure/dequeue
kickoff replies can post.

---
*Created by
[claudebox](https://claudebox.work/v2/sessions/e345f34e9b2da947/jobs/1)
· group: `slackbot` · requested by Santiago Palladino · [Slack
thread](https://aztecprotocol.slack.com/archives/C0AU8BULZHC/p1784902660161109?thread_ts=1784902660.161109&cid=C0AU8BULZHC)*
@AztecBot

Copy link
Copy Markdown
Collaborator Author

✅ Successfully backported to backport-to-v5-next-staging #24971.

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

Labels

backport-to-v5-next ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants