Skip to content

Fix slash review delivery + live progress updates + pre-warm modules cache - #16

Merged
ewels merged 1 commit into
mainfrom
feature/review-progress
Jun 17, 2026
Merged

Fix slash review delivery + live progress updates + pre-warm modules cache#16
ewels merged 1 commit into
mainfrom
feature/review-progress

Conversation

@ewels

@ewels ewels commented Jun 17, 2026

Copy link
Copy Markdown
Member

Why

The /nf-core proposals review slash command was completing reviews but silently not posting them — review ran, Bedrock returned, nothing appeared, no error logged. Root cause: the slash command delivered the review body over the slash response URL, which silently drops Block Kit markdown blocks (the ones that render nested bullets, added in the earlier formatting PR).

Verified empirically by posting a markdown block and a section block to a DM via chat.postMessage — both returned ok=True and rendered correctly. So the markdown block is fine over chat.postMessage; it's only the response-URL surface that drops it. The auto-trigger and message shortcut already use chat.postMessage, so they were never affected.

What changed

  • Slash delivery fixed — the review body now posts via chat.postMessage (markdown renders reliably there) instead of the response URL. Falls back to DMing the caller when the bot can't post where the command was run (e.g. a personal self-DM). preview goes privately to the caller's DM with the bot. The response URL is used only for the lightweight text ack + progress updates. Markdown blocks (nested bullets) kept everywhere.
  • Live progress updates — a status message now updates through the phases: 🔎 Researching nf-core modules & pipeline overlap… (N checks so far)✍️ Analysis done — writing the review…. Throttled and capped (slash edits an ephemeral message in place, within the response-URL budget; auto/shortcut post a status message, update it live, then delete it when the real review lands).
  • Pre-warmed modules cache — the Dockerfile now runs nf-core modules list remote as botuser so the CLI's clone of nf-core/modules is baked into the image; the first review on each task no longer pays the ~2-min first-run clone.
  • Tests — slash tests updated for the new chat.postMessage delivery + a DM-fallback test; 6 new throttling tests for the progress reporter.

Testing

ruff check, ruff format --check, mypy src/ (only the 2 pre-existing db/client.py boto3-stubs errors), and 541 tests pass.

🤖 Generated with Claude Code

The `/nf-core proposals review` slash command delivered the review body over
the slash response URL, which silently drops Block Kit `markdown` blocks (the
ones that render nested bullets) — the review completed but never posted, with
no error. Verified empirically: `markdown` blocks post fine via
`chat.postMessage`, so the failure is response-URL-specific. The auto-trigger
and message shortcut already use `chat.postMessage` and were unaffected.

- Slash command now delivers the review via `chat.postMessage` (markdown
  renders reliably there), falling back to DMing the caller when the bot can't
  post where the command was run (e.g. a personal self-DM). `preview` goes
  privately to the caller's DM. The response URL is used only for the text
  ack + progress updates.
- Live progress: a status message updates through the research phases
  ("Researching nf-core modules… (N checks so far)" → "writing the review…"),
  throttled and capped (slash edits an ephemeral message; auto/shortcut update
  then delete a thread status message).
- Dockerfile pre-warms the nf-core CLI's clone of nf-core/modules so the first
  review on each task skips the ~2-min first-run clone.
- Tests updated for the new slash delivery + DM fallback; added throttling
  tests for the progress reporter.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ewels
ewels merged commit b40a284 into main Jun 17, 2026
3 checks passed
@ewels
ewels deleted the feature/review-progress branch June 17, 2026 21:49
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