Add URL validation for Feishu post hyperlinks to prevent rejection of non-HTTP(S) URLs. Skip invalid links during markdown parsing.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
When the cron jobs file is corrupted, json.Unmarshal fails silently
and all scheduled tasks are lost without any log output. Add error
logging so the issue is visible in logs.
The idle timer in processInteractiveEvents kept running while
the event loop was blocked waiting for a user permission response.
If the user took longer than eventIdleTimeout to respond, the timer
would fire and kill the session on the next loop iteration.
Stop the idle timer before waiting on pending.Resolved and restart
it after the permission is resolved.
Updated README files to showcase Lark, Telegram, and Wechat screenshots consistently across languages. Replaced Discord screenshot with Telegram and improved image layout descriptions.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Update project description to focus on general AI agents rather than just coding assistants. Added contributors section with dynamic contributor image. Removed planned Crush agent (now merged with OpenCode) and made minor text improvements.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add preprocessDingTalkMarkdown function to handle DingTalk-specific markdown rendering quirks:
- Convert leading spaces to non-breaking spaces
- Ensure proper line breaks between non-empty lines
- Preserve code blocks formatting
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add data persistence to RelayManager with JSON storage.
Remove unused MsgRelayBindOK message.
Improve relay binding success messages.
Update RelayManager constructor to accept data directory path.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Move compression logic to async goroutine with proper state handling.
Add event processing with timeout and cleanup.
Add i18n support for compression done message.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add new i18n message keys for various command responses (switch, timeout, relay bindings).
Improve formatting of command list output with better descriptions and shell command display.
Adjust Feishu platform message type detection threshold for posts.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Merge upstream changes (iFlow agent, multi-bot relay, QQ Beta tag)
with our QQ Bot Official Platform additions. Resolved conflicts in
README.md, README.zh-CN.md, and cmd/cc-connect/main.go by combining
both sets of changes.
Code review fixes:
1. Fix msgSeqMap memory leak: replace unbounded sync.Map with TTL-based
map that evicts entries older than 5 minutes
2. Fix @mention not stripped: add stripAtMention() to parse and remove
the <@!botid> prefix from group message content
3. Filter empty messages: skip handler call when content is empty after
stripping (e.g. bare @bot with no text)
4. Fix reconnect race condition: add atomic.Bool guard to prevent
concurrent reconnectLoop goroutines
5. Add shard field to Identify payload per QQ official docs
6. Cap reconnect attempts at 30 to avoid infinite retry on config errors
New features:
7. Support receiving image attachments from group and C2C messages,
downloaded into core.ImageAttachment for agent consumption
8. Add docs/qqbot.md setup guide (bilingual EN/ZH)
9. Update README.md and README.zh-CN.md with QQ Bot platform entries
in support matrix, setup guide table, config examples, and project
structure
- Add "Multi-Bot Relay" to core highlights in both EN/CN README
- Mark QQ platform as Beta in support matrix
- Add Multi-Bot Relay feature to support matrix
- Add dedicated "Multi-Bot Relay" section with usage examples:
- Group chat binding via /bind command
- Bot-to-bot communication via cc-connect relay
- Cross-platform collaboration workflows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated iFlow CLI integration flags from `-p` to `-i` for interactive mode.
Modified quiet mode handling to preserve state across session stops.
Added shell command support in i18n messages.
Fixed empty tool ID handling in iFlow session.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add new `/shell` command (with aliases `/sh`, `/exec`, `/run`) to execute shell commands and return output. Includes timeout handling, working directory detection, output trimming, and error handling. Also adds command documentation in all supported languages.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
- add BotCommandInfo and CommandRegistrar interface for platform abstraction
- implement GetAllCommands to collect builtin/custom commands and skills
- add i18n descriptions for all 30 builtin commands (en/zh/zh-TW/ja/es)
- implement RegisterCommands for Telegram setMyCommands API integration
Add new `qqbot` platform type using the official QQ Bot API v2
(bot.q.qq.com), coexisting with the existing `qq` (OneBot v11) platform.
- OAuth2 token management with auto-refresh
- WebSocket gateway with heartbeat, reconnection, and resume
- GROUP_AT_MESSAGE_CREATE and C2C_MESSAGE_CREATE event handling
- REST API v2 message sending with msg_seq tracking
- No new dependencies (reuses gorilla/websocket)
- Add AddToBind() method to incrementally add projects to binding
- Add RemoveFromBind() method to remove specific project from binding
- Update /bind command to support multiple projects:
- /bind <project> - add project to binding
- /bind -<project> - remove specific project
- /bind remove - clear all bindings
- Add debug logging for telegram group message filtering
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add support for system-level systemd (/etc/systemd/system/) when running as root
- Add requireInstalled check before start/stop/restart operations
- Improve systemd detection and error messages for WSL2, containers, SSH
- Add isWSL2() helper for better platform detection
- Update daemon help text to clarify Linux root vs non-root behavior
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add new 'config-example' command that prints annotated config template.
Embed config.example.toml file using go:embed directive.
Improve CLI usage output formatting and documentation.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add logic to delete stale preview messages when stream preview is degraded.
Implement PreviewCleaner interface for Telegram platform and add test coverage.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add patchSessionSource function to rewrite session_meta lines in Codex JSONL transcripts, changing source from "exec" to "cli" and originator to "codex_cli_rs" for CLI visibility. Includes tests for patching behavior and idempotency.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add ability to define custom slash commands that execute shell commands directly:
- Extend CommandConfig with Exec and WorkDir fields
- Add cmdCommandsAddExec handler for exec commands
- Implement executeShellCommand with timeout and output handling
- Add work_dir support for exec commands
- Update documentation and i18n messages
- Add tests and error handling
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add support for configuring agent idle timeout duration via config file
(idle_timeout_mins). Defaults to 2 hours (changed from previous fixed 30 mins).
Timeout can be disabled by setting to 0.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Adjust eventIdleTimeout constant from 5 to 30 minutes to better handle agent response scenarios. Also includes minor code formatting cleanup in Engine struct.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
- Code blocks/tables → card (schema 2.0 markdown)
- Many \n\n paragraphs (≥4, e.g. help, status) → post rich-text (preserves blank lines)
- Other markdown → post md tag (best native rendering)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add quiet mode status to /status command with i18n support
- Fix Feishu help command line breaks (use buildPostJSON instead of md tag)
- Improve tool message formatting (code block for long content)
- Strip XML tags from session summary display
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>