From 9d605a8f0d78c2d1670715fb72bf3202328a5b96 Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 11:17:23 -0700 Subject: [PATCH 1/6] Add a built-in Agent messages plugin that tells agents to answer agents with bb thread tell Agents answered another agent in their normal response, so answers meant for an agent filled the user's timeline. The plugin adds instructions only: answer an agent with bb thread tell, answer the user in the normal response, and do not restate messages the timeline already shows. It adds no tool, is off by default, and changes nothing else in core beyond its built-in registration. Co-Authored-By: Claude Opus 5.5 --- .../src/services/plugins/builtin-registry.ts | 5 +++ .../services/plugins/builtin-plugins.test.ts | 2 ++ packages/bundled-plugins/package.json | 1 + plugins/agent-messages/PLUGIN_OVERVIEW.md | 9 +++++ plugins/agent-messages/package.json | 33 +++++++++++++++++++ plugins/agent-messages/src/server.ts | 8 +++++ plugins/agent-messages/tsconfig.json | 14 ++++++++ plugins/bb-official.json | 4 +++ pnpm-lock.yaml | 15 +++++++++ turbo.json | 3 ++ 10 files changed, 94 insertions(+) create mode 100644 plugins/agent-messages/PLUGIN_OVERVIEW.md create mode 100644 plugins/agent-messages/package.json create mode 100644 plugins/agent-messages/src/server.ts create mode 100644 plugins/agent-messages/tsconfig.json diff --git a/apps/server/src/services/plugins/builtin-registry.ts b/apps/server/src/services/plugins/builtin-registry.ts index bfce3b7104d..e1dc5634a69 100644 --- a/apps/server/src/services/plugins/builtin-registry.ts +++ b/apps/server/src/services/plugins/builtin-registry.ts @@ -44,6 +44,11 @@ export const BUILTIN_PLUGINS = [ pluginId: "account-pool", defaultEnabled: accountPoolDefaultEnabled(), }, + { + name: "agent-messages", + pluginId: "bb--agent-messages", + defaultEnabled: false, + }, { name: "ask-user-question", pluginId: "ask-user-question", diff --git a/apps/server/test/services/plugins/builtin-plugins.test.ts b/apps/server/test/services/plugins/builtin-plugins.test.ts index 675407f15a7..c394b8df27c 100644 --- a/apps/server/test/services/plugins/builtin-plugins.test.ts +++ b/apps/server/test/services/plugins/builtin-plugins.test.ts @@ -612,12 +612,14 @@ describe("builtin plugin reconciliation", () => { drafts: true, "provider-retry": true, "push-notifications": true, + "agent-messages": false, }); }); it.each([ ["provider-usage", "bb--provider-usage"], ["provider-retry", "provider-retry"], + ["agent-messages", "bb--agent-messages"], ])( "runs the real %s builtin on a fresh database", async (builtinName, pluginId) => { diff --git a/packages/bundled-plugins/package.json b/packages/bundled-plugins/package.json index 6cf6e9172d1..fd838cbfe4a 100644 --- a/packages/bundled-plugins/package.json +++ b/packages/bundled-plugins/package.json @@ -9,6 +9,7 @@ "dependencies": { "bb-plugin-account-pool": "workspace:*", "bb-plugin-agent-annotations": "workspace:*", + "bb-plugin-bb--agent-messages": "workspace:*", "bb-plugin-ask-user-question": "workspace:*", "bb-plugin-automations": "workspace:*", "bb-plugin-bb-account": "workspace:*", diff --git a/plugins/agent-messages/PLUGIN_OVERVIEW.md b/plugins/agent-messages/PLUGIN_OVERVIEW.md new file mode 100644 index 00000000000..699d906c7e8 --- /dev/null +++ b/plugins/agent-messages/PLUGIN_OVERVIEW.md @@ -0,0 +1,9 @@ +Agents answer another agent with `bb thread tell` and answer you in their normal response, so answers meant for an agent stay out of your timeline. + +## What you get + +- Instructions for every agent: answer an agent that messaged you with `bb thread tell`, answer the user in your normal response, and do not send acknowledgements or restate messages the timeline already shows. + +## How it works + +The plugin adds no tool. It only adds these instructions, so messages travel exactly as `bb thread tell` already sends them. A change takes effect when a thread's agent session next starts. Disabling the plugin removes the instructions. diff --git a/plugins/agent-messages/package.json b/plugins/agent-messages/package.json new file mode 100644 index 00000000000..395608f2354 --- /dev/null +++ b/plugins/agent-messages/package.json @@ -0,0 +1,33 @@ +{ + "name": "bb-plugin-bb--agent-messages", + "version": "0.1.0", + "private": true, + "type": "module", + "description": "Tell agents to answer other agents with bb thread tell and answer you in their normal response.", + "engines": { + "bb": ">=0.0", + "bbPluginSdk": ">=0.6.0" + }, + "bb": { + "name": "Agent messages", + "description": "Tell agents to answer other agents with bb thread tell and answer you in their normal response.", + "branding": { + "icon": "Sent" + }, + "server": "./src/server.ts" + }, + "keywords": [ + "bb-plugin" + ], + "scripts": { + "typecheck": "tsc --noEmit", + "lint": "oxlint --ignore-pattern node_modules --ignore-pattern dist .", + "prepare:bundled": "bb-plugin-build prepare-bundled" + }, + "devDependencies": { + "@bb/plugin-build": "workspace:*", + "@get-bb/plugin-sdk": "workspace:*", + "@types/node": "^22.0.0", + "typescript": "npm:@typescript/typescript6@^6.0.2" + } +} diff --git a/plugins/agent-messages/src/server.ts b/plugins/agent-messages/src/server.ts new file mode 100644 index 00000000000..667a745b946 --- /dev/null +++ b/plugins/agent-messages/src/server.ts @@ -0,0 +1,8 @@ +import type { BbPluginApi } from "@get-bb/plugin-sdk"; + +const INSTRUCTIONS = + "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell ` and the user in your normal response, or do both. You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. The user sees every message you send and receive in the timeline, so do not announce, summarize, or restate them."; + +export default function plugin(bb: BbPluginApi) { + bb.agents.contributeInstructions(() => INSTRUCTIONS); +} diff --git a/plugins/agent-messages/tsconfig.json b/plugins/agent-messages/tsconfig.json new file mode 100644 index 00000000000..72a2c9cb28e --- /dev/null +++ b/plugins/agent-messages/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "strict": true, + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "jsx": "react-jsx", + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "noEmit": true, + "skipLibCheck": true, + "types": ["node"] + }, + "include": ["*.ts", "*.tsx", "src/**/*.ts", "src/**/*.tsx"] +} diff --git a/plugins/bb-official.json b/plugins/bb-official.json index 326f6454694..a45baaba1ba 100644 --- a/plugins/bb-official.json +++ b/plugins/bb-official.json @@ -7,6 +7,10 @@ "category": "code-and-reviews", "screenshots": [] }, + "agent-messages": { + "category": "agents-and-providers", + "screenshots": [] + }, "ask-user-question": { "category": "thread-content", "screenshots": [] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4bad76a6149..2ba4f574282 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3148,6 +3148,21 @@ importers: specifier: ^4.1.1 version: 4.1.1(@opentelemetry/api@1.9.1)(@types/node@22.19.10)(jsdom@29.0.1(@noble/hashes@2.4.0))(msw@2.12.14(@types/node@22.19.10)(@typescript/typescript6@6.0.2))(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.1)(yaml@2.9.0)) + plugins/agent-messages: + devDependencies: + '@bb/plugin-build': + specifier: workspace:* + version: link:../../packages/plugin-build + '@get-bb/plugin-sdk': + specifier: workspace:* + version: link:../../packages/plugin-sdk + '@types/node': + specifier: ^22.0.0 + version: 22.19.10 + typescript: + specifier: npm:@typescript/typescript6@^6.0.2 + version: '@typescript/typescript6@6.0.2' + plugins/ask-user-question: dependencies: '@bb/shared-ui': diff --git a/turbo.json b/turbo.json index b408c37c568..d006a288dff 100644 --- a/turbo.json +++ b/turbo.json @@ -1023,6 +1023,9 @@ "bb-plugin-bb-ai#typecheck": { "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] }, + "bb-plugin-bb--agent-messages#typecheck": { + "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] + }, "bb-plugin-bb-guide#typecheck": { "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] }, From d643438d91692c7fac76fccdb8a969bd4bc2b3c3 Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 11:28:55 -0700 Subject: [PATCH 2/6] Add the bundled-plugins lockfile entry for Agent messages Co-Authored-By: Claude Opus 5.5 --- pnpm-lock.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ba4f574282..00041c26d69 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1611,6 +1611,9 @@ importers: bb-plugin-automations: specifier: workspace:* version: link:../../plugins/automations + bb-plugin-bb--agent-messages: + specifier: workspace:* + version: link:../../plugins/agent-messages bb-plugin-bb--provider-usage: specifier: workspace:* version: link:../../plugins/provider-usage From 58beb92f256a7d79dd9abe0baa954bb038d65a21 Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 19:19:00 -0700 Subject: [PATCH 3/6] Tell agents to end a turn without writing to the user when nothing needs their attention Co-Authored-By: Claude Opus 5.5 --- plugins/agent-messages/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/agent-messages/src/server.ts b/plugins/agent-messages/src/server.ts index 667a745b946..62e94d3b4cc 100644 --- a/plugins/agent-messages/src/server.ts +++ b/plugins/agent-messages/src/server.ts @@ -1,7 +1,7 @@ import type { BbPluginApi } from "@get-bb/plugin-sdk"; const INSTRUCTIONS = - "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell ` and the user in your normal response, or do both. You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. The user sees every message you send and receive in the timeline, so do not announce, summarize, or restate them."; + "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell `. You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. The user sees every message you send and receive in the timeline, so do not announce, summarize, or restate them. Write to the user only when they need to know or decide something; otherwise end your turn without writing to them. A turn started by another agent's message usually needs no words for the user."; export default function plugin(bb: BbPluginApi) { bb.agents.contributeInstructions(() => INSTRUCTIONS); From 443a74b5d68e106a6bbf2b3ef2c3afa5d0dc48fd Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 19:59:44 -0700 Subject: [PATCH 4/6] Point agents at bb thread tell forms the timeline shows and drop the visibility promise Co-Authored-By: Claude Opus 5.5 --- plugins/agent-messages/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/agent-messages/src/server.ts b/plugins/agent-messages/src/server.ts index 62e94d3b4cc..526f97b2b77 100644 --- a/plugins/agent-messages/src/server.ts +++ b/plugins/agent-messages/src/server.ts @@ -1,7 +1,7 @@ import type { BbPluginApi } from "@get-bb/plugin-sdk"; const INSTRUCTIONS = - "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell `. You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. The user sees every message you send and receive in the timeline, so do not announce, summarize, or restate them. Write to the user only when they need to know or decide something; otherwise end your turn without writing to them. A turn started by another agent's message usually needs no words for the user."; + "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell `, one message per command: put a short message in single quotes, or pass a longer one with `--message-file -` and a quoted heredoc (`<<'EOF'`). You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. Messages you send this way and messages you receive already appear in the timeline, so do not announce, summarize, or restate them. Write to the user only when they need to know or decide something; otherwise end your turn without writing to them. A turn started by another agent's message usually needs no words for the user."; export default function plugin(bb: BbPluginApi) { bb.agents.contributeInstructions(() => INSTRUCTIONS); From 322055a4b72072f7d9f49b389b2ac34496e608d7 Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 21:02:26 -0700 Subject: [PATCH 5/6] Move the agent-reply guidance into bb-guide and drop the Agent messages plugin The plugin had become one instruction paragraph that amended bb-guide's own rule about messaging other threads, so it now lives next to that rule for every agent instead of behind an off-by-default built-in. Co-Authored-By: Claude Opus 5.5 --- .../src/services/plugins/builtin-registry.ts | 5 --- .../services/plugins/builtin-plugins.test.ts | 2 -- packages/bundled-plugins/package.json | 1 - plugins/agent-messages/PLUGIN_OVERVIEW.md | 9 ----- plugins/agent-messages/package.json | 33 ------------------- plugins/agent-messages/src/server.ts | 8 ----- plugins/agent-messages/tsconfig.json | 14 -------- plugins/bb-guide/introduction.ts | 3 +- plugins/bb-official.json | 4 --- pnpm-lock.yaml | 18 ---------- turbo.json | 3 -- 11 files changed, 2 insertions(+), 98 deletions(-) delete mode 100644 plugins/agent-messages/PLUGIN_OVERVIEW.md delete mode 100644 plugins/agent-messages/package.json delete mode 100644 plugins/agent-messages/src/server.ts delete mode 100644 plugins/agent-messages/tsconfig.json diff --git a/apps/server/src/services/plugins/builtin-registry.ts b/apps/server/src/services/plugins/builtin-registry.ts index e1dc5634a69..bfce3b7104d 100644 --- a/apps/server/src/services/plugins/builtin-registry.ts +++ b/apps/server/src/services/plugins/builtin-registry.ts @@ -44,11 +44,6 @@ export const BUILTIN_PLUGINS = [ pluginId: "account-pool", defaultEnabled: accountPoolDefaultEnabled(), }, - { - name: "agent-messages", - pluginId: "bb--agent-messages", - defaultEnabled: false, - }, { name: "ask-user-question", pluginId: "ask-user-question", diff --git a/apps/server/test/services/plugins/builtin-plugins.test.ts b/apps/server/test/services/plugins/builtin-plugins.test.ts index c394b8df27c..675407f15a7 100644 --- a/apps/server/test/services/plugins/builtin-plugins.test.ts +++ b/apps/server/test/services/plugins/builtin-plugins.test.ts @@ -612,14 +612,12 @@ describe("builtin plugin reconciliation", () => { drafts: true, "provider-retry": true, "push-notifications": true, - "agent-messages": false, }); }); it.each([ ["provider-usage", "bb--provider-usage"], ["provider-retry", "provider-retry"], - ["agent-messages", "bb--agent-messages"], ])( "runs the real %s builtin on a fresh database", async (builtinName, pluginId) => { diff --git a/packages/bundled-plugins/package.json b/packages/bundled-plugins/package.json index fd838cbfe4a..6cf6e9172d1 100644 --- a/packages/bundled-plugins/package.json +++ b/packages/bundled-plugins/package.json @@ -9,7 +9,6 @@ "dependencies": { "bb-plugin-account-pool": "workspace:*", "bb-plugin-agent-annotations": "workspace:*", - "bb-plugin-bb--agent-messages": "workspace:*", "bb-plugin-ask-user-question": "workspace:*", "bb-plugin-automations": "workspace:*", "bb-plugin-bb-account": "workspace:*", diff --git a/plugins/agent-messages/PLUGIN_OVERVIEW.md b/plugins/agent-messages/PLUGIN_OVERVIEW.md deleted file mode 100644 index 699d906c7e8..00000000000 --- a/plugins/agent-messages/PLUGIN_OVERVIEW.md +++ /dev/null @@ -1,9 +0,0 @@ -Agents answer another agent with `bb thread tell` and answer you in their normal response, so answers meant for an agent stay out of your timeline. - -## What you get - -- Instructions for every agent: answer an agent that messaged you with `bb thread tell`, answer the user in your normal response, and do not send acknowledgements or restate messages the timeline already shows. - -## How it works - -The plugin adds no tool. It only adds these instructions, so messages travel exactly as `bb thread tell` already sends them. A change takes effect when a thread's agent session next starts. Disabling the plugin removes the instructions. diff --git a/plugins/agent-messages/package.json b/plugins/agent-messages/package.json deleted file mode 100644 index 395608f2354..00000000000 --- a/plugins/agent-messages/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "bb-plugin-bb--agent-messages", - "version": "0.1.0", - "private": true, - "type": "module", - "description": "Tell agents to answer other agents with bb thread tell and answer you in their normal response.", - "engines": { - "bb": ">=0.0", - "bbPluginSdk": ">=0.6.0" - }, - "bb": { - "name": "Agent messages", - "description": "Tell agents to answer other agents with bb thread tell and answer you in their normal response.", - "branding": { - "icon": "Sent" - }, - "server": "./src/server.ts" - }, - "keywords": [ - "bb-plugin" - ], - "scripts": { - "typecheck": "tsc --noEmit", - "lint": "oxlint --ignore-pattern node_modules --ignore-pattern dist .", - "prepare:bundled": "bb-plugin-build prepare-bundled" - }, - "devDependencies": { - "@bb/plugin-build": "workspace:*", - "@get-bb/plugin-sdk": "workspace:*", - "@types/node": "^22.0.0", - "typescript": "npm:@typescript/typescript6@^6.0.2" - } -} diff --git a/plugins/agent-messages/src/server.ts b/plugins/agent-messages/src/server.ts deleted file mode 100644 index 526f97b2b77..00000000000 --- a/plugins/agent-messages/src/server.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { BbPluginApi } from "@get-bb/plugin-sdk"; - -const INSTRUCTIONS = - "Messages from other agents begin with `[bb message from thread:]`. Answer the agent with `bb thread tell `, one message per command: put a short message in single quotes, or pass a longer one with `--message-file -` and a quoted heredoc (`<<'EOF'`). You may answer a thread that messaged you even if the user did not ask, but message other threads only when the user asks. Answer questions and requests, and never send acknowledgements or thanks. Other agents do the same, so do not wait for a reply to a message that asks for nothing. Messages you send this way and messages you receive already appear in the timeline, so do not announce, summarize, or restate them. Write to the user only when they need to know or decide something; otherwise end your turn without writing to them. A turn started by another agent's message usually needs no words for the user."; - -export default function plugin(bb: BbPluginApi) { - bb.agents.contributeInstructions(() => INSTRUCTIONS); -} diff --git a/plugins/agent-messages/tsconfig.json b/plugins/agent-messages/tsconfig.json deleted file mode 100644 index 72a2c9cb28e..00000000000 --- a/plugins/agent-messages/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "target": "ES2022", - "module": "ESNext", - "moduleResolution": "bundler", - "jsx": "react-jsx", - "lib": ["ES2022", "DOM", "DOM.Iterable"], - "noEmit": true, - "skipLibCheck": true, - "types": ["node"] - }, - "include": ["*.ts", "*.tsx", "src/**/*.ts", "src/**/*.tsx"] -} diff --git a/plugins/bb-guide/introduction.ts b/plugins/bb-guide/introduction.ts index 1cd5f3565a0..1e82562f2bb 100644 --- a/plugins/bb-guide/introduction.ts +++ b/plugins/bb-guide/introduction.ts @@ -5,7 +5,8 @@ export const introduction = [ "- Examples in the guide and skills use POSIX shell syntax. In PowerShell, read an environment variable as `$env:NAME` (for example `$env:BB_THREAD_ID`), separate commands with `;`, and continue a line with a backtick.", "- Run `bb status` to see the current project, thread, and environment.", "- Run `bb guide` for BB concepts and `bb guide ` for command details.", - "- Use `bb thread ...` to inspect or wait for other BB threads. Do not spawn new threads or message other threads unless the user has explicitly asked you to do so.", + "- Use `bb thread ...` to inspect or wait for other BB threads. Do not spawn new threads or message other threads unless the user has explicitly asked you to do so, except to answer a thread that messaged you.", + "- Messages from other agents begin with `[bb message from thread:]`. Answer a question or request from an agent with `bb thread tell `, one message per command: a short message in single quotes, or a longer one through `--message-file -` with a quoted heredoc (`<<'EOF'`). Never send acknowledgements or thanks, and do not wait for a reply to a message that asks for nothing. Messages you send and receive already appear in the timeline, so do not restate them; write to the user only when they need to know or decide something.", "- Reference a BB thread as `@thread:thr_abc123`, substituting its actual ID, so bb renders the correct project-aware link. Do not construct thread URLs manually.", "- Use Markdown links for files, artifacts, and URLs you want the user to open; bb is a visual IDE and renders them as clickable links.", ].join("\n"); diff --git a/plugins/bb-official.json b/plugins/bb-official.json index a45baaba1ba..326f6454694 100644 --- a/plugins/bb-official.json +++ b/plugins/bb-official.json @@ -7,10 +7,6 @@ "category": "code-and-reviews", "screenshots": [] }, - "agent-messages": { - "category": "agents-and-providers", - "screenshots": [] - }, "ask-user-question": { "category": "thread-content", "screenshots": [] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00041c26d69..4bad76a6149 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1611,9 +1611,6 @@ importers: bb-plugin-automations: specifier: workspace:* version: link:../../plugins/automations - bb-plugin-bb--agent-messages: - specifier: workspace:* - version: link:../../plugins/agent-messages bb-plugin-bb--provider-usage: specifier: workspace:* version: link:../../plugins/provider-usage @@ -3151,21 +3148,6 @@ importers: specifier: ^4.1.1 version: 4.1.1(@opentelemetry/api@1.9.1)(@types/node@22.19.10)(jsdom@29.0.1(@noble/hashes@2.4.0))(msw@2.12.14(@types/node@22.19.10)(@typescript/typescript6@6.0.2))(vite@8.0.12(@types/node@22.19.10)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.50.0)(tsx@4.23.1)(yaml@2.9.0)) - plugins/agent-messages: - devDependencies: - '@bb/plugin-build': - specifier: workspace:* - version: link:../../packages/plugin-build - '@get-bb/plugin-sdk': - specifier: workspace:* - version: link:../../packages/plugin-sdk - '@types/node': - specifier: ^22.0.0 - version: 22.19.10 - typescript: - specifier: npm:@typescript/typescript6@^6.0.2 - version: '@typescript/typescript6@6.0.2' - plugins/ask-user-question: dependencies: '@bb/shared-ui': diff --git a/turbo.json b/turbo.json index d006a288dff..b408c37c568 100644 --- a/turbo.json +++ b/turbo.json @@ -1023,9 +1023,6 @@ "bb-plugin-bb-ai#typecheck": { "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] }, - "bb-plugin-bb--agent-messages#typecheck": { - "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] - }, "bb-plugin-bb-guide#typecheck": { "dependsOn": ["@get-bb/plugin-sdk#build:types", "topo"] }, From a907648299416f0effc9d5bbe47ffb582e256547 Mon Sep 17 00:00:00 2001 From: brsbl <57682038+brsbl@users.noreply.github.com> Date: Sun, 4 Oct 2026 21:42:11 -0700 Subject: [PATCH 6/6] Have child threads answer their parent in the final response bb already reports a child's final response to its parent, so a child that also answered with bb thread tell gave the parent two inputs and a thin or stale completion report. Co-Authored-By: Claude Opus 5.5 --- plugins/bb-guide/introduction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bb-guide/introduction.ts b/plugins/bb-guide/introduction.ts index 1e82562f2bb..19bd900c4fa 100644 --- a/plugins/bb-guide/introduction.ts +++ b/plugins/bb-guide/introduction.ts @@ -6,7 +6,7 @@ export const introduction = [ "- Run `bb status` to see the current project, thread, and environment.", "- Run `bb guide` for BB concepts and `bb guide ` for command details.", "- Use `bb thread ...` to inspect or wait for other BB threads. Do not spawn new threads or message other threads unless the user has explicitly asked you to do so, except to answer a thread that messaged you.", - "- Messages from other agents begin with `[bb message from thread:]`. Answer a question or request from an agent with `bb thread tell `, one message per command: a short message in single quotes, or a longer one through `--message-file -` with a quoted heredoc (`<<'EOF'`). Never send acknowledgements or thanks, and do not wait for a reply to a message that asks for nothing. Messages you send and receive already appear in the timeline, so do not restate them; write to the user only when they need to know or decide something.", + "- Messages from other agents begin with `[bb message from thread:]`. Answer a question or request from an agent with `bb thread tell `, except your parent thread (shown in `bb status`): answer it in your final response, which bb reports to the parent. Send one message per command: a short message in single quotes, or a longer one through `--message-file -` with a quoted heredoc (`<<'EOF'`). Never send acknowledgements or thanks, and do not wait for a reply to a message that asks for nothing. Messages you send and receive already appear in the timeline, so do not restate them; write to the user only when they need to know or decide something.", "- Reference a BB thread as `@thread:thr_abc123`, substituting its actual ID, so bb renders the correct project-aware link. Do not construct thread URLs manually.", "- Use Markdown links for files, artifacts, and URLs you want the user to open; bb is a visual IDE and renders them as clickable links.", ].join("\n");