Repository navigation
Tags
Tags
feat: port features from microclaw — turn queue, run control, multi-a… …ccount, KG, parallel tools P0 correctness: - Startup guard: drop stale/duplicate messages on channel restart - Chat turn queue: serialize agent runs per chat, prevent session corruption - Run control: /stop cancels active agent runs via context cancellation P1 core capabilities: - Telegram/Discord multi-account support (channels: config with accounts map) - Telegram DM allowlist (allowed_user_ids) - New commands: /stop, /clear, /status - Skill manage tool (CRUD with control_chat_ids authorization) P2 enhancements: - Parallel tool execution (ReadOnly parallel → SideEffect sequential → Exclusive alone) - Time math tools (get_current_time, compare_time, calculate) - Knowledge graph (temporal triples with subject/object/timeline/stats queries) - DB migration V9: kg_triples table Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix: scheduler dedup, LLM retry, user-facing errors, image validation - Fix scheduler race condition: advance next_run before spawning goroutine to prevent duplicate task execution when LLM calls exceed 60s poll interval - Fix message ID collision: use nanosecond timestamp instead of second precision - Add exponential backoff retry (3 attempts) for LLM 429/5xx errors - Replace generic error message with specific user-facing feedback in Telegram and Discord (rate limit, API errors, timeout, etc.) - Validate image format before sending to LLM API, reject unsupported types with clear feedback showing actual vs supported formats - Fix tool_result empty content bug: ensure is_error=true always has content to prevent Anthropic API 400 rejection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: add Discord channel adapter Adds a full Discord integration using discordgo v0.29.0. Supports DMs and guild channels with optional allowed-channel filtering and no-mention mode. Includes slash-style commands (/reset, /usage, /archive, /skills), image attachment handling, typing indicators, and 2000-char message splitting. Wires up Discord in runtime, setup wizard, and doctor checks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: add Discord channel adapter Adds a full Discord integration using discordgo v0.29.0. Supports DMs and guild channels with optional allowed-channel filtering and no-mention mode. Includes slash-style commands (/reset, /usage, /archive, /skills), image attachment handling, typing indicators, and 2000-char message splitting. Wires up Discord in runtime, setup wizard, and doctor checks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: properly escape MarkdownV2 for Telegram messages - Rewrite escapeMarkdownV2 to be context-aware: code blocks (```) and inline code spans (`) are detected and their contents escaped per Telegram spec (only \ and ` inside code entities) - Add \ (backslash) to the set of escaped chars in regular text regions; the previous implementation omitted it, causing parse errors whenever Claude output contained paths, regex, or other backslash sequences - Add - to the escaped set (was present before, preserved) - Add unit tests covering paths, code blocks, inline code, mixed content, and unclosed delimiters (16 cases, all passing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: 🐛 wire up send_message sender & add gateway restart command - Fix send_message tool silently dropping messages due to nil sender - Bridge ChannelRegistry to ChannelSender via registrySender adapter - Add `miniclawd gateway restart` subcommand (launchd/systemd) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: 🚀 add gateway daemon command, hourly file logging, disable web … …UI by default - ✨ Add `miniclawd gateway` command with install/uninstall/start/stop/status/logs subcommands - 🍎 macOS support via launchd (LaunchAgents plist, launchctl management) - 🐧 Linux support via systemd (user unit file, systemctl --user management) - 📝 Add hourly-rotating file logger with 30-day auto-cleanup - 🔇 Disable Web UI by default (WebEnabled: false), remove Web UI prompt from setup wizard Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>