fix: never split replies into multiple messages (Fabric has no length limit)
Unlike Discord, Fabric has no message-length cap. Single-chunk chunker (text -> [text]), textChunkLimit=MAX_SAFE_INTEGER, capabilities blockStreaming=false, replyOptions.disableBlockStreaming=true -> every agent reply delivered as exactly one Fabric message. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -105,7 +105,9 @@ export const fabricChannelPlugin = createChatChannelPlugin<ResolvedFabricAccount
|
||||
threads: false,
|
||||
media: false,
|
||||
nativeCommands: false,
|
||||
blockStreaming: true,
|
||||
// Fabric has no message-length limit and we never want a reply split
|
||||
// into multiple messages -> no block streaming.
|
||||
blockStreaming: false,
|
||||
},
|
||||
reload: { configPrefixes: ['channels.fabric'] },
|
||||
config: {
|
||||
@@ -142,7 +144,12 @@ export const fabricChannelPlugin = createChatChannelPlugin<ResolvedFabricAccount
|
||||
threading: { topLevelReplyToMode: 'channel' },
|
||||
|
||||
outbound: {
|
||||
base: {},
|
||||
base: {
|
||||
deliveryMode: 'direct',
|
||||
// Fabric has no length limit: never chunk — always one message.
|
||||
chunker: (text: string) => [text],
|
||||
textChunkLimit: Number.MAX_SAFE_INTEGER,
|
||||
},
|
||||
attachedResults: {
|
||||
channel: 'fabric',
|
||||
sendText: async (ctx: {
|
||||
|
||||
@@ -176,7 +176,8 @@ export class FabricInbound {
|
||||
this.log.warn(`fabric: session record failed agent=${agentId}: ${String(err)}`),
|
||||
onDispatchError: (err: unknown, info: { kind: string }) =>
|
||||
this.log.warn(`fabric: ${info.kind} dispatch failed agent=${agentId}: ${String(err)}`),
|
||||
replyOptions: {},
|
||||
// Fabric has no length limit: deliver the whole reply as ONE message.
|
||||
replyOptions: { disableBlockStreaming: true } as never,
|
||||
});
|
||||
this.log.info(`fabric: dispatch returned agent=${agentId} channel=${channelId}`);
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user