@qwen-code/channel-base 0.23.0 → 0.23.1-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -66,6 +66,12 @@ export interface BridgeSessionInfo {
66
66
  sessionId: string;
67
67
  workspaceCwd: string;
68
68
  hasActivePrompt: boolean;
69
+ worktree?: {
70
+ slug: string;
71
+ path: string;
72
+ branch: string;
73
+ };
74
+ worktreeState?: 'persisted-v1';
69
75
  }
70
76
  export interface ChannelAgentBridgeSessionOptions {
71
77
  approvalMode?: string;
@@ -77,6 +83,8 @@ export interface ChannelAgentBridgeSessionOptions {
77
83
  * through a channel.
78
84
  */
79
85
  sourceId?: string;
86
+ /** Request daemon-managed git worktree isolation for a fresh session. */
87
+ worktree?: Record<string, never>;
80
88
  }
81
89
  export interface ChannelPromptImage {
82
90
  data: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelAgentBridge.d.ts","sourceRoot":"","sources":["../src/ChannelAgentBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelAgentBridge.d.ts","sourceRoot":"","sources":["../src/ChannelAgentBridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelAgentBridge.js","sourceRoot":"","sources":["../src/ChannelAgentBridge.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oCAAoC,GAC/C,+BAA+B,CAAC;AAClC,MAAM,CAAC,MAAM,qCAAqC,GAChD,wCAAwC,CAAC;AAC3C,0EAA0E;AAC1E,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sCAAsC,GACjD,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,iCAAiC,GAC5C,kCAAkC,CAAC;AA6GrC;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAyC;IAEzC,MAAM,MAAM,GACV,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,aAAa;YAC7C,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,MAAM;SACV,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC5B;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,qEAAqE;YACrE,QAAQ,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;SAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"ChannelAgentBridge.js","sourceRoot":"","sources":["../src/ChannelAgentBridge.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oCAAoC,GAC/C,+BAA+B,CAAC;AAClC,MAAM,CAAC,MAAM,qCAAqC,GAChD,wCAAwC,CAAC;AAC3C,0EAA0E;AAC1E,4EAA4E;AAC5E,8DAA8D;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAC7D,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAC7D,0EAA0E;AAC1E,2EAA2E;AAC3E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sCAAsC,GACjD,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,iCAAiC,GAC5C,kCAAkC,CAAC;AAiHrC;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAyC;IAEzC,MAAM,MAAM,GACV,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC1C,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,OAAO,EAAE,WAAW,IAAI,OAAO,CAAC,aAAa;YAC7C,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;IACX,OAAO,MAAM;SACV,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,CAAC,KAAK;QACP,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACrB,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QAClC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC5B;SACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,OAAO,GACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC9D,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,qEAAqE;YACrE,QAAQ,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO;SAC3D,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -92,6 +92,9 @@ export declare abstract class ChannelBase {
92
92
  private readonly observedContacts?;
93
93
  private readonly namedSessions?;
94
94
  private readonly observedContactEnvelopes;
95
+ private readonly messagePrefix?;
96
+ private readonly messagePrefixCheckedEnvelopes;
97
+ private readonly messagePrefixRejectedEnvelopes;
95
98
  private instructedSessions;
96
99
  private unattendedMemorySessions;
97
100
  private channelMemoryReads;
@@ -150,6 +153,7 @@ export declare abstract class ChannelBase {
150
153
  abstract connect(): Promise<void>;
151
154
  abstract sendMessage(chatId: string, text: string): Promise<void>;
152
155
  abstract disconnect(): void;
156
+ waitForDisconnect(): Promise<void>;
153
157
  /**
154
158
  * Thread-targeted delivery. Polling adapters override this to post comments
155
159
  * on a specific issue/PR. The default falls through to sendMessage(chatId,
@@ -280,6 +284,8 @@ export declare abstract class ChannelBase {
280
284
  private pendingPermissionForEnvelope;
281
285
  private canEnvelopeAnswerPendingPermission;
282
286
  private formatPermissionRequest;
287
+ protected prefixedCommand(command: string): string;
288
+ protected configuredMessagePrefix(): string | undefined;
283
289
  private permissionTitle;
284
290
  private permissionToolName;
285
291
  private permissionParameterSummary;
@@ -432,12 +438,14 @@ export declare abstract class ChannelBase {
432
438
  private getAgentCommandsForSession;
433
439
  private groupHistoryKey;
434
440
  private groupHistoryLimit;
435
- private recordPendingGroupHistory;
441
+ protected recordPendingGroupHistory(envelope: Envelope): void;
436
442
  private drainPendingGroupHistory;
443
+ private forgetPendingGroupHistory;
437
444
  private clearPendingGroupHistory;
438
445
  private prependGroupHistoryContext;
439
446
  protected preflightInbound(envelope: Envelope, options?: PreflightInboundOptions): boolean | Promise<boolean>;
440
447
  protected logPreflightRejected(reason: string): void;
448
+ protected wasMessagePrefixRejected(envelope: Envelope): boolean;
441
449
  protected logDebugPayload(platform: string, payload: unknown): void;
442
450
  handleInbound(envelope: Envelope): Promise<void>;
443
451
  protected prepareThenHandleInbound(envelope: Envelope, prepare: () => Promise<boolean | void>, preflightOptions?: PreflightInboundOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChannelBase.d.ts","sourceRoot":"","sources":["../src/ChannelBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChannelBase.d.ts","sourceRoot":"","sources":["../src/ChannelBase.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { NamedSessionManager, } from './named-session-manager.js';
12
12
  import { getGlobalQwenDir } from './paths.js';
13
13
  import { sanitizeSenderName, sanitizeQuotedText, sanitizePromptText, sanitizePromptPath, sanitizeLogText, sanitizeDisplayText, truncateCodePoints, PROMPT_UNSAFE_INVISIBLES, } from './sanitize.js';
14
14
  import { ChannelLoopSkippedError } from './ChannelLoopScheduler.js';
15
+ import { applyMessagePrefix } from './message-prefix.js';
15
16
  import { buildChannelWebhookDisplayText, buildChannelWebhookPrompt, resolveChannelWebhookTarget, } from './ChannelWebhookTask.js';
16
17
  import { parseChannelMemoryIntent, } from './channel-memory-intent.js';
17
18
  import { CHANNEL_MEMORY_RECALL_MAX_ENTRIES, createChannelMemoryRecallIndex, selectRelevantChannelMemory, selectRelevantChannelMemoryFromIndex, } from './channel-memory-recall.js';
@@ -127,6 +128,9 @@ export class ChannelBase {
127
128
  observedContacts;
128
129
  namedSessions;
129
130
  observedContactEnvelopes = new WeakSet();
131
+ messagePrefix;
132
+ messagePrefixCheckedEnvelopes = new WeakSet();
133
+ messagePrefixRejectedEnvelopes = new WeakSet();
130
134
  instructedSessions = new Set();
131
135
  unattendedMemorySessions = new Set();
132
136
  channelMemoryReads = new Map();
@@ -259,7 +263,7 @@ export class ChannelBase {
259
263
  async handleBtw(envelope, sessionId, question, sourceLabel) {
260
264
  const target = this.router.getTarget(sessionId);
261
265
  if (!target || target.channelName !== this.name) {
262
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Could not resolve the current task for /btw.', sourceLabel);
266
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not resolve the current task for ${this.prefixedCommand('/btw')}.`, sourceLabel);
263
267
  return;
264
268
  }
265
269
  const running = this.activeBtw.get(sessionId);
@@ -674,8 +678,13 @@ export class ChannelBase {
674
678
  this.removePendingPermission(event.requestId, this.userInputSettlementReason(pending, event.outcome));
675
679
  }
676
680
  constructor(name, config, bridge, options) {
681
+ if (config.messagePrefix !== undefined &&
682
+ typeof config.messagePrefix !== 'string') {
683
+ throw new Error(`Channel "${name}" field "messagePrefix" must be a string.`);
684
+ }
677
685
  this.name = name;
678
686
  this.config = config;
687
+ this.messagePrefix = config.messagePrefix?.trim() || undefined;
679
688
  this.bridge = bridge;
680
689
  this.proxy = options?.proxy;
681
690
  this.stateDir = options?.stateDir;
@@ -727,6 +736,9 @@ export class ChannelBase {
727
736
  this.attachBridgeEvents(bridge);
728
737
  }
729
738
  }
739
+ waitForDisconnect() {
740
+ return Promise.resolve();
741
+ }
730
742
  /**
731
743
  * Thread-targeted delivery. Polling adapters override this to post comments
732
744
  * on a specific issue/PR. The default falls through to sendMessage(chatId,
@@ -2038,13 +2050,13 @@ export class ChannelBase {
2038
2050
  ? { approve: ' ', always: ' ', deny: ' ' }
2039
2051
  : { approve: ' ', always: ' ', deny: ' ' };
2040
2052
  const replies = [
2041
- `/approve${requestSuffix}${replyPadding.approve}${approveLabel}`,
2053
+ `${this.prefixedCommand(`/approve${requestSuffix}`)}${replyPadding.approve}${approveLabel}`,
2042
2054
  ...(alwaysOption
2043
2055
  ? [
2044
- `/approve-always${requestSuffix}${replyPadding.always}${alwaysOption.label}`,
2056
+ `${this.prefixedCommand(`/approve-always${requestSuffix}`)}${replyPadding.always}${alwaysOption.label}`,
2045
2057
  ]
2046
2058
  : []),
2047
- `/deny${requestSuffix}${replyPadding.deny}${denyLabel}`,
2059
+ `${this.prefixedCommand(`/deny${requestSuffix}`)}${replyPadding.deny}${denyLabel}`,
2048
2060
  ];
2049
2061
  return [
2050
2062
  'Permission required to run a tool',
@@ -2058,6 +2070,12 @@ export class ChannelBase {
2058
2070
  ...replies,
2059
2071
  ].join('\n');
2060
2072
  }
2073
+ prefixedCommand(command) {
2074
+ return this.messagePrefix ? `${this.messagePrefix} ${command}` : command;
2075
+ }
2076
+ configuredMessagePrefix() {
2077
+ return this.messagePrefix;
2078
+ }
2061
2079
  permissionTitle(toolCall) {
2062
2080
  const rawTitle = typeof toolCall.title === 'string' ? toolCall.title : undefined;
2063
2081
  return sanitizeQuotedText(rawTitle || '', 160).trim() || 'Tool use';
@@ -2182,7 +2200,7 @@ export class ChannelBase {
2182
2200
  return `- ${task}${sanitizeQuotedText(id, 128)}${title}`;
2183
2201
  })
2184
2202
  .join('\n');
2185
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with /${decision} <request-id>.\n${requestList}`);
2203
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Multiple permission requests are pending for this chat. Reply with ${this.prefixedCommand(`/${decision} <request-id>`)}.\n${requestList}`);
2186
2204
  return true;
2187
2205
  }
2188
2206
  if (lookup.kind === 'none') {
@@ -2201,7 +2219,7 @@ export class ChannelBase {
2201
2219
  return true;
2202
2220
  }
2203
2221
  if (pending.userInputPresented && decision !== 'deny') {
2204
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Submit this question through its interactive card, or use /deny [request-id] to cancel it.', pending.sourceLabel);
2222
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Submit this question through its interactive card, or use ${this.prefixedCommand('/deny [request-id]')} to cancel it.`, pending.sourceLabel);
2205
2223
  return true;
2206
2224
  }
2207
2225
  const response = (() => {
@@ -2350,6 +2368,9 @@ export class ChannelBase {
2350
2368
  }
2351
2369
  }
2352
2370
  async sendNamedSessionError(envelope, error) {
2371
+ if (error instanceof Error && error.cause !== undefined) {
2372
+ process.stderr.write(`[${sanitizeLogText(this.name, 64)}] named-session operation failed: ${this.lifecycleError(error)} | cause: ${this.lifecycleError(error.cause)}\n`);
2373
+ }
2353
2374
  const message = error instanceof Error
2354
2375
  ? sanitizeDisplayText(error.message, 500)
2355
2376
  : 'Named-session operation failed.';
@@ -2361,7 +2382,7 @@ export class ChannelBase {
2361
2382
  return false;
2362
2383
  const normalized = args.trim().toLowerCase();
2363
2384
  if (normalized !== '' && normalized !== 'all') {
2364
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /sessions [all]');
2385
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/sessions [all]')}`);
2365
2386
  return true;
2366
2387
  }
2367
2388
  try {
@@ -2395,18 +2416,19 @@ export class ChannelBase {
2395
2416
  const current = await namedSessions.current(owner);
2396
2417
  await this.sendThreadMessage(envelope.chatId, envelope.threadId, current
2397
2418
  ? `Current task: ${current.name} (${current.isolation})`
2398
- : 'No task is currently selected. Use /session new <name> or /session use <name>.');
2419
+ : `No task is currently selected. Use ${this.prefixedCommand('/session new <name>')} or ${this.prefixedCommand('/session use <name>')}.`);
2399
2420
  return true;
2400
2421
  }
2401
2422
  case 'new': {
2402
- if (parts.includes('--worktree')) {
2403
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Worktree tasks are planned for Part 4. Create a shared task with /session new <name>.');
2404
- return true;
2405
- }
2406
- if (parts.length !== 1)
2423
+ const isolation = parts.length === 2 && parts[1] === '--worktree'
2424
+ ? 'worktree'
2425
+ : 'shared';
2426
+ if ((isolation === 'shared' && parts.length !== 1) ||
2427
+ (isolation === 'worktree' && parts.length !== 2)) {
2407
2428
  break;
2408
- const created = await namedSessions.create(owner, parts[0]);
2409
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Created and selected task "${created.name}" (shared workspace).`);
2429
+ }
2430
+ const created = await namedSessions.create(owner, parts[0], isolation);
2431
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Created and selected task "${created.name}" (${created.isolation} workspace).`);
2410
2432
  return true;
2411
2433
  }
2412
2434
  case 'use': {
@@ -2463,7 +2485,7 @@ export class ChannelBase {
2463
2485
  await this.sendNamedSessionError(envelope, error);
2464
2486
  return true;
2465
2487
  }
2466
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /session current | /session new <name> | /session use <name> | /session close <name> | /session cancel [<name>]');
2488
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/session current')} | ${this.prefixedCommand('/session new <name> [--worktree]')} | ${this.prefixedCommand('/session use <name>')} | ${this.prefixedCommand('/session close <name>')} | ${this.prefixedCommand('/session cancel [<name>]')}`);
2467
2489
  return true;
2468
2490
  }
2469
2491
  /** Register shared slash commands. Called from constructor. */
@@ -2595,7 +2617,7 @@ export class ChannelBase {
2595
2617
  return true;
2596
2618
  }
2597
2619
  if (this.isSharedSession(envelope) && args.toLowerCase() !== 'confirm') {
2598
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'This clears the shared session for everyone who shares it. Re-send with "confirm" (e.g. /clear confirm) to proceed.');
2620
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `This clears the shared session for everyone who shares it. Re-send with "confirm" (e.g. ${this.prefixedCommand('/clear confirm')}) to proceed.`);
2599
2621
  return true;
2600
2622
  }
2601
2623
  await doClear(envelope);
@@ -2655,24 +2677,24 @@ export class ChannelBase {
2655
2677
  this.registerCommand('help', async (envelope) => {
2656
2678
  const lines = [
2657
2679
  'Commands:',
2658
- '/help — Show this help',
2680
+ `${this.prefixedCommand('/help')} — Show this help`,
2659
2681
  this.isSharedSession(envelope)
2660
- ? '/clear confirm — Clear the shared session (aliases: /reset, /new)'
2661
- : '/clear — Clear your session (aliases: /reset, /new)',
2662
- '/who — Show current session & workspace',
2663
- '/status — Show session info',
2664
- '/approve [request-id] — Approve a pending permission request',
2665
- '/approve-always [request-id] — Always approve a pending permission request',
2666
- '/deny [request-id] — Deny a pending permission request',
2682
+ ? `${this.prefixedCommand('/clear confirm')} — Clear the shared session (aliases: ${this.prefixedCommand('/reset')}, ${this.prefixedCommand('/new')})`
2683
+ : `${this.prefixedCommand('/clear')} — Clear your session (aliases: ${this.prefixedCommand('/reset')}, ${this.prefixedCommand('/new')})`,
2684
+ `${this.prefixedCommand('/who')} — Show current session & workspace`,
2685
+ `${this.prefixedCommand('/status')} — Show session info`,
2686
+ `${this.prefixedCommand('/approve [request-id]')} — Approve a pending permission request`,
2687
+ `${this.prefixedCommand('/approve-always [request-id]')} — Always approve a pending permission request`,
2688
+ `${this.prefixedCommand('/deny [request-id]')} — Deny a pending permission request`,
2667
2689
  ...(this.bridge.btw
2668
2690
  ? [
2669
- '/btw <question> — Ask a side question without interrupting the current task',
2691
+ `${this.prefixedCommand('/btw <question>')} — Ask a side question without interrupting the current task`,
2670
2692
  ]
2671
2693
  : []),
2672
2694
  ...(this.namedSessions
2673
2695
  ? [
2674
- '/sessions [all] — List your named tasks',
2675
- '/session current|new|use|close|cancel — Manage your named tasks',
2696
+ `${this.prefixedCommand('/sessions [all]')} — List your named tasks`,
2697
+ `${this.prefixedCommand('/session current|new|use|close|cancel')} — Manage your named tasks`,
2676
2698
  ]
2677
2699
  : []),
2678
2700
  ];
@@ -2697,7 +2719,7 @@ export class ChannelBase {
2697
2719
  const platformCmds = [...this.commands.keys()].filter((c) => !sharedCmds.has(c));
2698
2720
  if (platformCmds.length > 0) {
2699
2721
  for (const cmd of platformCmds) {
2700
- lines.push(`/${cmd}`);
2722
+ lines.push(this.prefixedCommand(`/${cmd}`));
2701
2723
  }
2702
2724
  }
2703
2725
  const sessionId = await this.currentSessionId(envelope);
@@ -2711,10 +2733,12 @@ export class ChannelBase {
2711
2733
  if (agentCommands.length > 0) {
2712
2734
  lines.push('', 'Agent commands (forwarded to Qwen Code):');
2713
2735
  for (const cmd of agentCommands) {
2714
- lines.push(`/${cmd.name} — ${cmd.description}`);
2736
+ lines.push(`${this.prefixedCommand(`/${cmd.name}`)} — ${cmd.description}`);
2715
2737
  }
2716
2738
  }
2717
- lines.push('', 'Send any text to chat with the agent.');
2739
+ lines.push('', this.messagePrefix
2740
+ ? `Start each message with ${this.messagePrefix} to chat with the agent.`
2741
+ : 'Send any text to chat with the agent.');
2718
2742
  await this.sendThreadMessage(envelope.chatId, envelope.threadId, lines.join('\n'));
2719
2743
  return true;
2720
2744
  });
@@ -2765,7 +2789,7 @@ export class ChannelBase {
2765
2789
  case 'cancel':
2766
2790
  return this.handleLoopCancel(envelope, rest[0]);
2767
2791
  default:
2768
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /loop add "<cron>" <prompt> | /loop list | /loop inspect <id> | /loop cancel <id>');
2792
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop add "<cron>" <prompt>')} | ${this.prefixedCommand('/loop list')} | ${this.prefixedCommand('/loop inspect <id>')} | ${this.prefixedCommand('/loop cancel <id>')}`);
2769
2793
  return true;
2770
2794
  }
2771
2795
  }
@@ -2782,7 +2806,7 @@ export class ChannelBase {
2782
2806
  }
2783
2807
  const parsed = parseLoopAddArgs(args);
2784
2808
  if (!parsed) {
2785
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /loop add "<cron>" <prompt>');
2809
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop add "<cron>" <prompt>')}`);
2786
2810
  return true;
2787
2811
  }
2788
2812
  try {
@@ -2944,7 +2968,7 @@ export class ChannelBase {
2944
2968
  if (!this.loopController)
2945
2969
  return true;
2946
2970
  if (!id) {
2947
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /loop inspect <id>');
2971
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop inspect <id>')}`);
2948
2972
  return true;
2949
2973
  }
2950
2974
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -3005,7 +3029,7 @@ export class ChannelBase {
3005
3029
  if (!this.loopController)
3006
3030
  return true;
3007
3031
  if (!id) {
3008
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /loop cancel <id>');
3032
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/loop cancel <id>')}`);
3009
3033
  return true;
3010
3034
  }
3011
3035
  const jobs = await this.loopController.listForTarget(this.name, this.loopTargetFromEnvelope(envelope));
@@ -3143,6 +3167,7 @@ export class ChannelBase {
3143
3167
  if ((this.sessionGenerations.get(sessionId) ?? 0) === generation) {
3144
3168
  return false;
3145
3169
  }
3170
+ this.forgetPendingGroupHistory(envelope);
3146
3171
  // Surface the drop — otherwise an unanswered queued message vanishes
3147
3172
  // silently, making "my message was never answered" undiagnosable.
3148
3173
  // envelope.text is attacker-controlled, so neutralize it with the shared
@@ -3847,6 +3872,11 @@ export class ChannelBase {
3847
3872
  if (limit <= 0 || envelope.text.trim().length === 0) {
3848
3873
  return;
3849
3874
  }
3875
+ // An adapter placeholder is not something a member typed, so quoting it
3876
+ // back as history would inject `(image)` into the next prompt as user
3877
+ // text.
3878
+ if (envelope.syntheticText)
3879
+ return;
3850
3880
  const senderId = truncateGroupHistoryField(envelope.senderId);
3851
3881
  if (this.config.groupPolicy !== 'pairing' &&
3852
3882
  !this.gate.isAllowed(senderId)) {
@@ -3879,13 +3909,25 @@ export class ChannelBase {
3879
3909
  !this.groupGate.isGroupApproved(envelope.chatId)) {
3880
3910
  return [];
3881
3911
  }
3882
- return entries;
3912
+ return envelope.messageId === undefined
3913
+ ? entries
3914
+ : entries.filter((entry) => entry.messageId !== envelope.messageId);
3883
3915
  }
3884
3916
  catch (err) {
3885
3917
  process.stderr.write(`[${this.name}] failed to drain group history for chat ${sanitizeLogText(envelope.chatId, 64)}: ${err instanceof Error ? err.message : err}\n`);
3886
3918
  return [];
3887
3919
  }
3888
3920
  }
3921
+ forgetPendingGroupHistory(envelope) {
3922
+ if (envelope.messageId === undefined)
3923
+ return;
3924
+ try {
3925
+ this.groupHistory.forget(this.groupHistoryKey(envelope), truncateGroupHistoryField(envelope.messageId));
3926
+ }
3927
+ catch (err) {
3928
+ process.stderr.write(`[${this.name}] failed to forget group history for chat ${sanitizeLogText(envelope.chatId, 64)}: ${err instanceof Error ? err.message : err}\n`);
3929
+ }
3930
+ }
3889
3931
  clearPendingGroupHistory(envelope) {
3890
3932
  if (!envelope.isGroup && this.config.sessionScope !== 'single') {
3891
3933
  return;
@@ -3920,6 +3962,21 @@ export class ChannelBase {
3920
3962
  return `${GROUP_HISTORY_CONTEXT_MARKER}\n${formatted.join('\n')}\n\n${CURRENT_MESSAGE_MARKER}\n${promptText}`;
3921
3963
  }
3922
3964
  preflightInbound(envelope, options = {}) {
3965
+ // Ahead of both pairing gates on purpose: a pairing request is a reply,
3966
+ // and replying to every unprefixed message would be exactly the traffic
3967
+ // the prefix exists to suppress. First contact carries the prefix too.
3968
+ if (this.messagePrefixRejectedEnvelopes.has(envelope))
3969
+ return false;
3970
+ if (!this.messagePrefixCheckedEnvelopes.has(envelope)) {
3971
+ this.messagePrefixCheckedEnvelopes.add(envelope);
3972
+ if (!applyMessagePrefix(envelope, this.messagePrefix)) {
3973
+ this.messagePrefixRejectedEnvelopes.add(envelope);
3974
+ if (!(envelope.isGroup && !envelope.isMentioned && !envelope.isReplyToBot)) {
3975
+ this.logPreflightRejected('message_prefix_mismatch');
3976
+ }
3977
+ return false;
3978
+ }
3979
+ }
3923
3980
  const groupResult = this.groupGate.check(envelope, {
3924
3981
  createPairingRequest: !options.deferPairingRequests,
3925
3982
  });
@@ -3983,6 +4040,9 @@ export class ChannelBase {
3983
4040
  logPreflightRejected(reason) {
3984
4041
  process.stderr.write(`[Channel:${this.name}] preflight rejected reason=${sanitizeLogText(reason, 80)}\n`);
3985
4042
  }
4043
+ wasMessagePrefixRejected(envelope) {
4044
+ return this.messagePrefixRejectedEnvelopes.has(envelope);
4045
+ }
3986
4046
  logDebugPayload(platform, payload) {
3987
4047
  if (!isDebugPayloadEnabled(this.name))
3988
4048
  return;
@@ -4231,6 +4291,7 @@ export class ChannelBase {
4231
4291
  suppressSaveConfirmation: memorySaveIsSideEffect,
4232
4292
  });
4233
4293
  if (!memorySaveIsSideEffect) {
4294
+ this.forgetPendingGroupHistory(envelope);
4234
4295
  return;
4235
4296
  }
4236
4297
  }
@@ -4240,8 +4301,10 @@ export class ChannelBase {
4240
4301
  const handler = this.commands.get(parsed.command);
4241
4302
  if (handler) {
4242
4303
  const handled = await handler(envelope, parsed.args);
4243
- if (handled)
4304
+ if (handled) {
4305
+ this.forgetPendingGroupHistory(envelope);
4244
4306
  return;
4307
+ }
4245
4308
  }
4246
4309
  // Unrecognized commands fall through to the agent
4247
4310
  // Intercept /btw only where the bridge can answer it out of band. With no
@@ -4250,12 +4313,12 @@ export class ChannelBase {
4250
4313
  // same path it took before this interception existed.
4251
4314
  if (parsed.command === 'btw' && this.bridge.btw) {
4252
4315
  if (!this.isAuthorizedForSharedSession(envelope)) {
4253
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Only authorized members can use /btw in this shared session.');
4316
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Only authorized members can use ${this.prefixedCommand('/btw')} in this shared session.`);
4254
4317
  return;
4255
4318
  }
4256
4319
  btwQuestion = parsed.args.trim();
4257
4320
  if (!btwQuestion) {
4258
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Usage: /btw <question>');
4321
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Usage: ${this.prefixedCommand('/btw <question>')}`);
4259
4322
  return;
4260
4323
  }
4261
4324
  if (btwQuestion.length > CHANNEL_BTW_MAX_INPUT_LENGTH) {
@@ -4263,7 +4326,7 @@ export class ChannelBase {
4263
4326
  return;
4264
4327
  }
4265
4328
  if (envelope.imageBase64 || envelope.attachments?.length) {
4266
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, '/btw supports text-only questions.');
4329
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `${this.prefixedCommand('/btw')} supports text-only questions.`);
4267
4330
  return;
4268
4331
  }
4269
4332
  }
@@ -4332,7 +4395,7 @@ export class ChannelBase {
4332
4395
  return;
4333
4396
  }
4334
4397
  if (!sessionId) {
4335
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'No task is currently selected. Use /session new <name> or /session use <name>.');
4398
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `No task is currently selected. Use ${this.prefixedCommand('/session new <name>')} or ${this.prefixedCommand('/session use <name>')}.`);
4336
4399
  return;
4337
4400
  }
4338
4401
  }
@@ -4343,7 +4406,7 @@ export class ChannelBase {
4343
4406
  ? this.sourceLabelForTurn(sessionId, envelope)
4344
4407
  : undefined;
4345
4408
  if (this.namedSessions && !sourceLabel) {
4346
- await this.sendThreadMessage(envelope.chatId, envelope.threadId, 'Could not identify the selected task. Use /sessions, select it again, and retry.');
4409
+ await this.sendThreadMessage(envelope.chatId, envelope.threadId, `Could not identify the selected task. Use ${this.prefixedCommand('/sessions')}, select it again, and retry.`);
4347
4410
  return;
4348
4411
  }
4349
4412
  if (btwQuestion !== undefined) {
@@ -4682,6 +4745,9 @@ export class ChannelBase {
4682
4745
  const acceptedRecallContext = recallRead?.generation === recallRead?.state.generation
4683
4746
  ? recallContext
4684
4747
  : undefined;
4748
+ if (recognizedSlashCommand) {
4749
+ this.forgetPendingGroupHistory(envelope);
4750
+ }
4685
4751
  const groupHistoryEntries = recognizedSlashCommand
4686
4752
  ? []
4687
4753
  : this.drainPendingGroupHistory(envelope);