Skip to content

[codex] Route merge announcements to ci#1452

Merged
jonastemplestein merged 1 commit into
mainfrom
accurate-lighter
Jun 10, 2026
Merged

[codex] Route merge announcements to ci#1452
jonastemplestein merged 1 commit into
mainfrom
accurate-lighter

Conversation

@jonastemplestein

@jonastemplestein jonastemplestein commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Route the "merged to main" Slack announcement workflow to #ci instead of #building.
  • Regenerate the checked-in workflow YAML from the TypeScript workflow source.

Impact

  • Future PR merge announcements for main will land in the CI Slack channel.

Validation

  • pnpm --dir .github/ts-workflows generate

Note

Low Risk
Notification routing only; no auth, deploy, or application logic changes.

Overview
Merge-to-main Slack notifications now post to #ci instead of #building.

The change is in the TypeScript workflow source (merge-to-main-slack.ts) and the regenerated checked-in GitHub Actions YAML so both stay in sync. Message content and triggers are unchanged—only the destination channel.

Reviewed by Cursor Bugbot for commit ea7f32f. Bugbot is set up for automated code reviews on this repo. Configure here.

@jonastemplestein jonastemplestein marked this pull request as ready for review June 10, 2026 13:35
@jonastemplestein jonastemplestein merged commit 124e2a6 into main Jun 10, 2026
8 checks passed
@jonastemplestein jonastemplestein deleted the accurate-lighter branch June 10, 2026 13:36
mmkal added a commit that referenced this pull request Jun 10, 2026
…shboard; #1452's #ci routing adopted by pointing the dashboard at #ci)
mmkal added a commit that referenced this pull request Jun 10, 2026
The full per-PR breakdown was huge in-channel on busy days. The
channel message is now a one-line summary with counts; the breakdown
lives in a single threaded reply, both updated in place (parent update
passes blocks: [] since chat.update retains existing blocks otherwise).

Channel moves from #building to #ci, adopting #1452's routing decision
for merge announcements (merged from main; the old workflow it edited
stays deleted).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mmkal added a commit that referenced this pull request Jun 10, 2026
Replaces the `merge-to-main-slack` workflow (one Slack message per
merged PR — noisy on busy days) with a workflow that maintains **at most
one message per day** in `#ci`: a one-line PR dashboard summary, with
the full per-PR breakdown in a single threaded reply. Both are created
on the first PR event of the day and updated in place after that.

Channel message:

> **PR dashboard 10th June** — 51 merged · 9 closed without merging · 4
opened · 2 older still open (details in thread)

Threaded reply (rendered from real data):

> **Merged:**
> • [#1410 Fix 5-min logout, deploy-time JWKS, and stream append
skeleton flash](#1410) by jonas
(ad6da76)
> • [#1407 itx: contexts, capabilities, and the one true
handle](#1407) by jonas (f256768)
> …
> **Closed without merging:**
> • [#1440 Migrate captun to published npm
0.0.3](#1440) by misha
> …
> **Opened:**
> • [#1448 Replace per-merge Slack messages with a daily PR
dashboard](#1448) by misha
(draft)
> …
> Old: [#1349](#1349),
[#1355](#1355)

How it works:

- Content is refetched from the GitHub search API on every run (merged /
closed-unmerged / opened-and-still-open today, plus older open PRs), so
the message is self-healing — no incremental state to corrupt.
- The day's message timestamps live in a repo Actions variable
(`SLACK_PR_DASHBOARD_STATE`, `{date, channel, ts, details_ts}`), written
with the same `ITERATE_BOT_GITHUB_TOKEN` the nag workflow uses. No new
Slack scopes needed: `chat.update` uses the `chat:write` the bot already
exercises.
- Targets `#ci`, adopting #1452's decision to move merge announcements
out of `#building` (that PR edited the workflow this one deletes; the
conflict is resolved here by keeping the deletion).
- The threaded details go out as chunked mrkdwn section blocks rather
than one `text` param: on busy days a single text field hits
`chat.update`'s `msg_too_long` (`postMessage` truncates, `update`
rejects — found by e2e-testing against today's ~50 merges).
- Plain-text author names (no @-mentions) since the messages update many
times a day.
- Testable two ways: pushing any `*pr-dashboard*` branch runs it for
real against `#misha-test` with a separate state variable (create,
update-in-place, and threading paths all verified this way — e.g. runs
[27280068182](https://github.com/iterate/iterate/actions/runs/27280068182),
[27288814028](https://github.com/iterate/iterate/actions/runs/27288814028)),
and `node cli.ts github-script
pr-dashboard.update_dashboard.update_pr_dashboard --github-token ...`
does a local dry run that prints both messages.

Task file: `tasks/slack-daily-pr-dashboard.md`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
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.

1 participant