From 3519ce658d966eb56cce4be36622e9eb9e66c7de Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Thu, 22 Oct 2026 13:49:18 -0400 Subject: [PATCH 1/2] fix(app): refuse a blocked teammate's @ace instead of posting a dead mention --- apps/app/src/composer.tsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/app/src/composer.tsx b/apps/app/src/composer.tsx index faa9085f..a64d52b2 100644 --- a/apps/app/src/composer.tsx +++ b/apps/app/src/composer.tsx @@ -29,7 +29,11 @@ const MODES = [ ACE_MODE, ]; // A teammate the owner hasn't let invoke sees no @ace; the stored mode brings it back with access. -const BLOCKED_MODES = [{ id: "chat", name: "Chat", placeholder: "Message the channel" }]; +const BLOCKED_MODES = [{ + id: "chat", + name: "Chat", + placeholder: "Message the channel (agent access is off)", +}]; const ACE_MENTION = { name: "ace", avatar: aceAvatar }; export const EFFORTS: Record = { off: "Off", @@ -241,7 +245,14 @@ export function Composer( async function send(text: string, mode: string, attached: Attachment[]) { if (sending.current) return; - // A blocked teammate's typed "@ace" is just text. + // Posted, a blocked teammate's "@ace" would read as an ask nobody answers. + if (blocked && ACE.test(text)) { + toast.error("Agent access is off", { + description: + "The owner hasn't let teammates ask this channel's agent. Remove @ace to send this as a message.", + }); + return; + } const invoke = !blocked && (mode === "ace" || ACE.test(text)); const body = text.trim(); if (!body && !attached.length) return; From 1abbe8d5ada99c5f442c77da63a8551cecd648d4 Mon Sep 17 00:00:00 2001 From: iamnbutler Date: Thu, 22 Oct 2026 13:49:27 -0400 Subject: [PATCH 2/2] chore: lane context --- ...M4YQG7BVWEFZPD56A2BA0VE9-mode-ace-mode-channels-id-an.md | 6 +++--- ...M4ZSEZBJJ3AMEBTR7SH36FW4-models-are-read-only-while-t.md | 6 +++--- ...1M4ZYQVGB6C87WBEV12WPQ8PF-a-withdrawn-message-returns.md | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.lane/memory/apps/app/src/composer.tsx/01M4YQG7BVWEFZPD56A2BA0VE9-mode-ace-mode-channels-id-an.md b/.lane/memory/apps/app/src/composer.tsx/01M4YQG7BVWEFZPD56A2BA0VE9-mode-ace-mode-channels-id-an.md index 5e7486db..7b9e7df3 100644 --- a/.lane/memory/apps/app/src/composer.tsx/01M4YQG7BVWEFZPD56A2BA0VE9-mode-ace-mode-channels-id-an.md +++ b/.lane/memory/apps/app/src/composer.tsx/01M4YQG7BVWEFZPD56A2BA0VE9-mode-ace-mode-channels-id-an.md @@ -4,9 +4,9 @@ anchor: function Composer created: 2026-10-15T02:50:44Z norm: '1' sig: 6e0e6c5c8afbd01a -body_hash: 5d41556386df9599 -raw_hash: da6fdc606e9e685b -vouched: 2026-10-22T15:31:22Z +body_hash: 50b1bf8d25d5e6da +raw_hash: fcc5ab24dfd60256 +vouched: 2026-10-22T17:49:27Z lines: 99-282 --- diff --git a/.lane/memory/apps/app/src/composer.tsx/01M4ZSEZBJJ3AMEBTR7SH36FW4-models-are-read-only-while-t.md b/.lane/memory/apps/app/src/composer.tsx/01M4ZSEZBJJ3AMEBTR7SH36FW4-models-are-read-only-while-t.md index 57745d3c..dd425425 100644 --- a/.lane/memory/apps/app/src/composer.tsx/01M4ZSEZBJJ3AMEBTR7SH36FW4-models-are-read-only-while-t.md +++ b/.lane/memory/apps/app/src/composer.tsx/01M4ZSEZBJJ3AMEBTR7SH36FW4-models-are-read-only-while-t.md @@ -4,9 +4,9 @@ anchor: function Composer created: 2026-10-15T12:44:15Z norm: '1' sig: 6e0e6c5c8afbd01a -body_hash: 5d41556386df9599 -raw_hash: da6fdc606e9e685b -vouched: 2026-10-22T15:31:22Z +body_hash: 50b1bf8d25d5e6da +raw_hash: fcc5ab24dfd60256 +vouched: 2026-10-22T17:49:27Z lines: 101-290 --- diff --git a/.lane/memory/apps/app/src/composer.tsx/01M4ZYQVGB6C87WBEV12WPQ8PF-a-withdrawn-message-returns.md b/.lane/memory/apps/app/src/composer.tsx/01M4ZYQVGB6C87WBEV12WPQ8PF-a-withdrawn-message-returns.md index 96402efd..c3d6ae44 100644 --- a/.lane/memory/apps/app/src/composer.tsx/01M4ZYQVGB6C87WBEV12WPQ8PF-a-withdrawn-message-returns.md +++ b/.lane/memory/apps/app/src/composer.tsx/01M4ZYQVGB6C87WBEV12WPQ8PF-a-withdrawn-message-returns.md @@ -4,9 +4,9 @@ anchor: function Composer created: 2026-10-15T14:16:28Z norm: '1' sig: 6e0e6c5c8afbd01a -body_hash: 5d41556386df9599 -raw_hash: da6fdc606e9e685b -vouched: 2026-10-22T15:31:22Z +body_hash: 50b1bf8d25d5e6da +raw_hash: fcc5ab24dfd60256 +vouched: 2026-10-22T17:49:27Z lines: 104-326 ---