Skip to content

feat: Slack now respond to threads - #704

Merged
xavierhamel merged 1 commit into
masterfrom
xh/feat/overwatch-add-notify-to-thread
Aug 3, 2026
Merged

feat: Slack now respond to threads#704
xavierhamel merged 1 commit into
masterfrom
xh/feat/overwatch-add-notify-to-thread

Conversation

@xavierhamel

Copy link
Copy Markdown
Contributor

No description provided.

@greptile-apps

greptile-apps Bot commented Aug 3, 2026

Copy link
Copy Markdown

Greptile Summary

The PR adds persistent per-PR notification state so Slack updates can reply to the original PR announcement across separate processes.

  • Adds notification-state serialization in PR bodies and threads subsequent Slack messages using the stored timestamp.
  • Extends GitHub PR operations and run results to expose PR numbers, bodies, and body updates.
  • Adds tests and documentation for state persistence and Slack threading.

Confidence Score: 4/5

The PR should not merge until PR-body state updates preserve concurrent edits and the breaking public GitSource changes are versioned or made backward compatible.

Notification persistence can silently replace a newer PR body, and the patch release breaks existing implementations of the package’s documented GitSource extension interface.

Files Needing Attention: overwatch/src/control-loop.ts, overwatch/src/github.ts

Important Files Changed

Filename Overview
overwatch/src/control-loop.ts Adds notification-state loading and persistence, but its unconditional full-body update can overwrite concurrent PR-body changes.
overwatch/src/github.ts Adds PR body access and updates while introducing breaking required changes to the public GitSource interface.
overwatch/src/notify-state.ts Implements best-effort marker serialization and parsing while preserving claim markers in normal single-writer operation.
overwatch/src/notifications/slack.ts Threads follow-up messages using channel-scoped persisted root timestamps.
overwatch/src/notifications/notification.ts Extends notification delivery with opaque per-destination state while retaining existing failure isolation.
overwatch/src/actuators/agent-pr.ts Propagates the newly opened PR number alongside its URL so notification state can be persisted.

Sequence Diagram

sequenceDiagram
  participant Run as Scheduled run
  participant GitHub
  participant Slack
  participant Hook as Comment webhook
  Run->>GitHub: Open PR
  Run->>Slack: Post PR announcement
  Slack-->>Run: Root message ts
  Run->>GitHub: Store ts in PR body
  Hook->>GitHub: Read PR and notify-state
  Hook->>Slack: Post update with thread_ts
  Hook->>GitHub: Persist updated state
Loading

Reviews (1): Last reviewed commit: "feat: Slack now respond to threads" | Re-trigger Greptile

Comment thread overwatch/src/control-loop.ts
Comment thread overwatch/src/github.ts
@xavierhamel
xavierhamel merged commit 79d0f50 into master Aug 3, 2026
2 checks passed
@xavierhamel
xavierhamel deleted the xh/feat/overwatch-add-notify-to-thread branch August 3, 2026 14:43
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.

2 participants