Repository navigation
fix: archive IMAP lifecycle events - #318
Conversation
Co-authored-by: ecarreras <ecarreras@users.noreply.github.com>
pilipilisbot
left a comment
There was a problem hiding this comment.
Approved for this bounded IMAP lifecycle fix. The parser requires a timeline issue_event Message-ID, an #event- URL, and close/reopen text before archiving; that check precedes the assignment-footer heuristic while merge detection retains precedence. The queue test confirms an archived no-op rather than executable work, and the docs keep webhook rollout scope explicit.
I reviewed the changed parser, queue tests, and docs; directly exercised close, reopen, and assignment cases against this head; and checked the green Python 3.11/3.12 CI. The local pytest executable cited in the PR is not present on this host, so I did not reproduce the full suite locally. This is a narrow divergence fix, not completion of the cross-source identity/authorization parity or observation gates in #299.
|
Post-merge sync complete for #318: GitHub confirms the PR merged as |
|
Post-merge sync complete.
|
Requested by: @ecarreras
TASK-85718
Summary
issue_event/<id>close and reopen emails before assignment/footer heuristics;open_issuework;#event-URL, and lifecycle phrase together so normal comments discussing a closed issue remain actionable;Why
GitHub lifecycle emails can include
You are receiving this because you were assigned.in their delivery footer. The generic assignment heuristic treated that footer as the event itself, so close/reopen notifications could becomeopen_issue + work_allowed. This is one of the concrete divergence classes blocking webhook promotion in #299.The fix is deliberately conservative: it does not infer lifecycle state from arbitrary comment text, change webhook cutover configuration, or claim cross-source parity is complete.
Validation
6 passedPYTHONPATH=src /home/openclaw/.local/share/github-agent-bridge/venv/bin/pytest -q --disable-warnings—603 passedgit diff --checkRisk
Low and bounded to IMAP timeline-event classification. A close/reopen notification now persists as the established
archive_notificationno-op. Assignment and comment events keep their existing behavior, and webhook unmerged-close handling is unchanged.Refs #299