Skip to content

fix(channels): track JoinHandles for Discord gateway and Slack event server#4501

Merged
bug-ops merged 1 commit into
mainfrom
4493-channels-untracked-spawns
May 28, 2026
Merged

fix(channels): track JoinHandles for Discord gateway and Slack event server#4501
bug-ops merged 1 commit into
mainfrom
4493-channels-untracked-spawns

Conversation

@bug-ops
Copy link
Copy Markdown
Owner

@bug-ops bug-ops commented May 28, 2026

Summary

  • DiscordChannel now stores the JoinHandle returned by spawn_gateway; aborted on Drop.
  • SlackChannel now stores the JoinHandle returned by spawn_event_server; aborted on Drop.
  • spawn_event_server return type changed from Receiver<IncomingMessage> to (JoinHandle<()>, Receiver<IncomingMessage>).
  • Slash-command registration spawn left as let _handle (intentional fire-and-forget; non-fatal by design) with doc comment.

Test plan

  • cargo nextest run -p zeph-channels --all-features — 241/241 pass
  • cargo clippy -p zeph-channels --all-features -- -D warnings — 0 warnings
  • cargo clippy --workspace -- -D warnings — clean
  • RUSTFLAGS="-D warnings" cargo check --workspace --all-targets --features desktop,ide,server,chat,pdf,scheduler --locked — clean
  • Summarization test failures in zeph-core confirmed pre-existing (pass in isolation, timeout under full workspace parallel run; unrelated to zeph-channels changes)

Closes #4493

@github-actions github-actions Bot added documentation Improvements or additions to documentation channels zeph-channels crate (Telegram) rust Rust code changes bug Something isn't working size/M Medium PR (51-200 lines) labels May 28, 2026
@bug-ops bug-ops enabled auto-merge (squash) May 28, 2026 12:06
…server

Store the JoinHandle returned by spawn_gateway in DiscordChannel and the
handle from spawn_event_server in SlackChannel. Both are aborted on Drop
via JoinHandle ownership semantics, giving the supervisor visibility into
task lifecycle and clean shutdown behaviour.

Slash-command registration spawn is intentionally fire-and-forget
(let _handle) — registration failure is non-fatal by design.

Closes #4493
@bug-ops bug-ops force-pushed the 4493-channels-untracked-spawns branch from 830a71c to bd0368d Compare May 28, 2026 12:16
@bug-ops bug-ops merged commit db9648c into main May 28, 2026
32 checks passed
@bug-ops bug-ops deleted the 4493-channels-untracked-spawns branch May 28, 2026 12:23
bug-ops added a commit that referenced this pull request May 28, 2026
…server (#4501)

Store the JoinHandle returned by spawn_gateway in DiscordChannel and the
handle from spawn_event_server in SlackChannel. Both are aborted on Drop
via JoinHandle ownership semantics, giving the supervisor visibility into
task lifecycle and clean shutdown behaviour.

Slash-command registration spawn is intentionally fire-and-forget
(let _handle) — registration failure is non-fatal by design.

Closes #4493
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working channels zeph-channels crate (Telegram) documentation Improvements or additions to documentation rust Rust code changes size/M Medium PR (51-200 lines)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(channels): Discord slash-command and Slack event-server spawns are fire-and-forget

1 participant