diff --git a/CHANGELOG.md b/CHANGELOG.md index a134359f5..d34c7d651 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ Status: beta. - iMessage: normalize messaging targets. (#1708) - Signal: fix reactions and add configurable startup timeout. (#1651, #1677) - Matrix: decrypt E2EE media with size guard. (#1744) +- Message tool: disable cross-context origin marker by default; set `tools.message.crossContext.marker.enabled: true` to restore. (#1782) ## 2026.1.24 diff --git a/src/config/schema.ts b/src/config/schema.ts index 28c994f3d..8ff91ca19 100644 --- a/src/config/schema.ts +++ b/src/config/schema.ts @@ -428,7 +428,7 @@ const FIELD_HELP: Record = { "tools.message.crossContext.allowAcrossProviders": "Allow sends across different providers (default: false).", "tools.message.crossContext.marker.enabled": - "Add a visible origin marker when sending cross-context (default: true).", + "Add a visible origin marker when sending cross-context (default: false).", "tools.message.crossContext.marker.prefix": 'Text prefix for cross-context markers (supports "{channel}").', "tools.message.crossContext.marker.suffix": diff --git a/src/config/types.tools.ts b/src/config/types.tools.ts index db32cb59d..4cc681d27 100644 --- a/src/config/types.tools.ts +++ b/src/config/types.tools.ts @@ -403,7 +403,7 @@ export type ToolsConfig = { allowAcrossProviders?: boolean; /** Cross-context marker configuration. */ marker?: { - /** Enable origin markers for cross-context sends (default: true). */ + /** Enable origin markers for cross-context sends (default: false). */ enabled?: boolean; /** Text prefix template, supports {channel}. */ prefix?: string; diff --git a/src/infra/outbound/outbound-policy.test.ts b/src/infra/outbound/outbound-policy.test.ts index f798d7e9b..d999e783d 100644 --- a/src/infra/outbound/outbound-policy.test.ts +++ b/src/infra/outbound/outbound-policy.test.ts @@ -72,8 +72,12 @@ describe("outbound policy", () => { }); it("uses embeds when available and preferred", async () => { + const cfg = { + ...discordConfig, + tools: { message: { crossContext: { marker: { enabled: true } } } }, + } as MoltbotConfig; const decoration = await buildCrossContextDecoration({ - cfg: discordConfig, + cfg, channel: "discord", target: "123", toolContext: { currentChannelId: "C12345678", currentChannelProvider: "discord" }, diff --git a/src/infra/outbound/outbound-policy.ts b/src/infra/outbound/outbound-policy.ts index 9b3470949..74fb9d84b 100644 --- a/src/infra/outbound/outbound-policy.ts +++ b/src/infra/outbound/outbound-policy.ts @@ -124,7 +124,7 @@ export async function buildCrossContextDecoration(params: { if (!isCrossContextTarget(params)) return null; const markerConfig = params.cfg.tools?.message?.crossContext?.marker; - if (markerConfig?.enabled === false) return null; + if (markerConfig?.enabled !== true) return null; const currentName = (await lookupDirectoryDisplay({