Skip to content

feat: bChannel plugin for channel pings - #216

Merged
3kh0 merged 4 commits into
3kh0:mainfrom
deployor:feat/bchannel-plugin
Aug 9, 2026
Merged

feat: bChannel plugin for channel pings#216
3kh0 merged 4 commits into
3kh0:mainfrom
deployor:feat/bchannel-plugin

Conversation

@deployor

@deployor deployor commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

lets people who dont have permission still send @channel / @here from the normal composer. works with images too. requires the bchannel slack app.

Copilot AI lite review requested due to automatic review settings August 9, 2026 04:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Slick plugin (bChannel) that intercepts Slack message sending to enable @channel / @here broadcasts (and image attachments) via a required external “bChannel” Slack app + service, including a document-start preload hook for early network interception.

Changes:

  • Introduces a large renderer-side integration that hooks fetch/XMLHttpRequest and Slack’s message composer pipeline to stage intents, upload images, and dispatch /bchannel when broadcasts are detected or denied.
  • Registers a document-start preload script (Electron session preload) and adds settings + CSS for an in-app error dialog.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.

File Description
plugins/bChannel/renderer.js Implements Slack network/composer interception, bChannel handoff logic, attachment handling, and error dialog UI.
plugins/bChannel/index.js Adds plugin entrypoint, settings, preload registration, and dialog CSS.
Suppressed comments (2)

plugins/bChannel/renderer.js:928

  • The Escape key listener is only removed when Escape is pressed. If the dialog is closed via the close button, Cancel, or clicking the backdrop, the keydown handler remains registered, which can leak listeners and cause unexpected behavior on subsequent dialogs. Remove the keydown listener in the shared close handler.
    const closeDialog = () => removeDialog();
    close.addEventListener('click', closeDialog);
    dismiss.addEventListener('click', closeDialog);

plugins/bChannel/renderer.js:526

  • Same as above: this error message implies all image types are supported, but IMAGE_TYPES only allows JPEG/PNG/GIF/WebP. Clarify the supported image types so users don’t get confused when attaching other image formats.
      if (!IMAGE_TYPES.has(mimeType)) {
        throw new Error('bChannel can only send image attachments. Remove the other files and try again.');
      }

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread plugins/bChannel/renderer.js
Comment thread plugins/bChannel/renderer.js
Comment thread plugins/bChannel/index.js
Comment thread plugins/bChannel/renderer.js
@3kh0
3kh0 merged commit 83c3abc into 3kh0:main Aug 9, 2026
6 checks passed
@deployor
deployor deleted the feat/bchannel-plugin branch August 9, 2026 23:56
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.

3 participants