Skip to content

feat(kanban): carry the review handoff summary into the wake turn - #32

Merged
nikitaBarkov merged 1 commit into
sync/upstream-2026-08-14from
nikita.barkov/kanban-wake-review-summary
Aug 17, 2026
Merged

feat(kanban): carry the review handoff summary into the wake turn#32
nikitaBarkov merged 1 commit into
sync/upstream-2026-08-14from
nikita.barkov/kanban-wake-review-summary

Conversation

@nikitaBarkov

Copy link
Copy Markdown

What does this PR do?

Puts the worker's handoff summary inside the synthetic wake turn for review_requested, the way completed already does.

The completed branch of the gateway kanban notifier copies the run summary into wake_handoff, which is rendered through gateway.kanban.wake.handoff ("Result: …") in the synthetic turn. The review_requested branch only used the summary for the passive 👀 … ready for review ping, so the wake turn read "Task X handed off for review; the implementation is done" and nothing else — the woken reviewer had to go read the board to learn what was implemented, and the PR link the worker had already written in its handoff was dropped.

Follow-up to #31 (which made review_requested wake the origin at all). Same first-line/200-char handoff shape as completed, so no new locale keys and no change to the passive message.

Related Issue

No issue. Observed on a live board: the review wake turn arrived without the worker's summary, unlike the completion wake turn.

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • gateway/kanban_watchers.py: in the review_requested branch, set wake_handoff from the event's summary (first line, 200 chars) exactly like the completed branch does.
  • tests/gateway/test_kanban_notifier.py: the review-handoff task now reports a multi-line summary with a PR link, and the wake test asserts that link is inside the wake turn.
  • website/docs/user-guide/features/kanban.md: state that a completed or review_requested summary rides the wake turn.

How to Test

  1. Subscribe a chat with notify+wake, let a worker call kanban_request_review(summary="PR ready: <url>"). The wake turn now contains Result: PR ready: <url> on top of the passive ping.
  2. scripts/run_tests.sh tests/gateway/test_kanban_notifier.py tests/hermes_cli/test_kanban_review_lifecycle.py tests/agent/test_i18n.py -q — 3 files, 67 tests, 0 failures.
  3. Mutation check: dropping the wake_handoff assignment fails test_review_requested_wakes_the_origin_session.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this change
  • I've run the affected tests and they pass
  • I've added tests for my changes
  • I've tested on macOS 15.6

Documentation & Housekeeping

  • I've updated relevant documentation — website/docs/user-guide/features/kanban.md
  • I've updated cli-config.yaml.example — N/A, no new config keys
  • I've updated CONTRIBUTING.md / AGENTS.md — N/A, no architecture or workflow change
  • Cross-platform impact considered — pure Python, no OS-specific code
  • Tool descriptions/schemas — N/A, no tool changes

`completed` already puts the worker's summary inside the synthetic wake
turn, so the woken creator sees what was done. `review_requested` did
not: the summary rode the passive ping only, and the wake turn said just
"handed off for review", forcing the woken reviewer to re-read the board
(and losing the PR link the worker had already written).

Reuse the same first-line handoff the `completed` branch builds, so the
existing `gateway.kanban.wake.handoff` string renders it — no new locale
keys, no change to the passive message.
@nikitaBarkov
nikitaBarkov merged commit 4d3165a into sync/upstream-2026-08-14 Aug 17, 2026
80 of 86 checks passed
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