Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ new version heading in the same commit.

## [Unreleased]

## [0.141.2] — 2026-07-13
### Fixed
- **Slack: a plain message in a channel the bot sits in no longer gets the `/agent` help list.** The app
subscribes to `message.channels` so plain in-thread follow-ups reach thread-continuity — but that also
delivers a `message` event for *every* channel post, and a non-continuation one fell through to
`fireSlack` → the `/agent` router, which replied "👋 Address an agent…" to ordinary channel chatter. The
socket now only starts a fresh run on an explicit **@mention** (`app_mention`) or a **DM** (`im`/`mpim`);
a plain channel message matters only as a thread continuation, otherwise it's dropped silently. Brings
Slack to parity with Discord, whose parser already ignores non-mention guild messages.

## [0.141.1] — 2026-07-13
### Fixed
- **Unattended (automation/cron/task) sessions no longer leak a live pane after they finish.** An agent that
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-os",
"version": "0.141.1",
"version": "0.141.2",
"description": "A generic, governed operating system for running autonomous agents safely across brands. Ships with a local web console.",
"license": "MIT",
"type": "commonjs",
Expand Down
8 changes: 8 additions & 0 deletions src/edge/slack-socket.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ export class SlackSocket {
return;
}

// Not a thread continuation. A plain channel `message` (no @mention) only reached us because the app
// subscribes to `message.channels` FOR that continuity — it's just chatter in a channel the bot
// happens to sit in, never a fresh trigger. Only an explicit @mention (`app_mention`) or a DM
// (`im`/`mpim`) starts a new run; otherwise drop it silently so we don't spam the `/agent` router's
// help list into the channel. (Mirrors Discord, whose parser already drops non-mention guild messages.)
const isDm = ev.channelType === 'im' || ev.channelType === 'mpim';
if (ev.eventType !== 'app_mention' && !isDm) return;

const result = this.autos.fireSlack(
{
eventType: ev.eventType,
Expand Down
Loading