feat: implement tier 1 quick wins (tool groups, typing, pruning, verbose, think)
Five additive features with no breaking changes: - Tool groups: group:fs, group:runtime, group:web, group:memory syntactic sugar for allow/deny lists in tool policy config - Typing indicators: Discord sendTyping() and WhatsApp sendStateTyping() on message receipt for better UX feedback - Session pruning: TTL-based auto-cleanup via sessions.ttl config with hourly daemon timer and SQLite GROUP BY pruning - /verbose command: TUI command parser toggle for raw streaming display - !!think prefix: per-message extended thinking mode wired through Anthropic (budget_tokens), OpenAI/GitHub (reasoning_effort), and Gemini (thinkingConfig) providers Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -196,6 +196,13 @@ export class DiscordAdapter implements ChannelAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
// Send typing indicator (lasts 10 seconds, no need for interval)
|
||||
try {
|
||||
if ('sendTyping' in message.channel) {
|
||||
(message.channel as any).sendTyping();
|
||||
}
|
||||
} catch { /* ignore typing errors */ }
|
||||
|
||||
// Strip bot mention from the message text
|
||||
const text = message.content.replace(/<@!?\d+>/g, '').trim();
|
||||
|
||||
|
||||
@@ -287,6 +287,8 @@ export class SlackAdapter implements ChannelAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
// Note: Slack doesn't expose a typing indicator API for bots
|
||||
|
||||
// Build peer ID: channelId:threadTs (thread-aware)
|
||||
const threadTs = message.thread_ts ?? message.ts ?? '';
|
||||
const peerId = `${channelId}:${threadTs}`;
|
||||
|
||||
@@ -236,6 +236,12 @@ export class WhatsAppAdapter implements ChannelAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
// Send typing indicator
|
||||
try {
|
||||
const chat = await (message as any).getChat();
|
||||
await chat.sendStateTyping();
|
||||
} catch { /* ignore typing errors */ }
|
||||
|
||||
// Strip bot mention from message body for group messages
|
||||
let text = message.body ?? '';
|
||||
if (isGroup && this.botId) {
|
||||
|
||||
Reference in New Issue
Block a user