Streaming Preview:
- Real-time message preview during agent response (like "typing" indicator)
- Supported on Telegram, Discord, and Feishu
- Configurable interval, min delta chars, and max preview length
Rate Limiting:
- Per-session sliding-window rate limiter
- Prevents users from flooding the bot with messages
- Configurable max messages and window size
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove unnecessary fmt.Sprintf wrapper around i18n.T() calls
- Add comprehensive unit tests for core module components
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add proper platform shutdown sequence before engine cleanup and check for canceled context in message processing and session creation to prevent operations during shutdown. Also reordered error collection for logical shutdown sequence.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add 'name' command and improve descriptions for session management.
Move 'delete' command to group with other session commands.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Implement disabled commands functionality for projects, including config parsing, engine integration, and i18n support. Allows disabling specific commands per-project via config.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add banned words configuration and filtering logic to block messages containing prohibited content. Includes:
- Config file support for banned_words list
- Engine methods to set and check banned words
- Case-insensitive matching during message processing
- Localization support for blocked message response
- Documentation updates in config example
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Implement session deletion functionality across all agent implementations (claudecode, codex, cursor, gemini)
Add new /delete command with session lookup by ID/prefix
Add i18n support for delete-related messages
Update command help texts to include new delete command
Add SessionDeleter interface for agents supporting deletion
Implement core deletion logic with active session protection
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add i18n support for session creation messages and ensure pending session names are properly set. Includes:
- Added MsgNewSessionCreated and MsgNewSessionCreatedName i18n messages
- Modified cmdNew to use i18n messages and handle empty names
- Set session name from pendingName in processInteractiveEvents if valid
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add config reload capability that updates display settings, providers and commands without restart.
- Added config reload command (/config reload)
- Implemented ConfigReloadResult tracking updates
- Added ClearSource to CommandRegistry
- Updated help messages across languages
- Added SetConfigReloadFunc to Engine
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add new `/upgrade` command to check for updates and self-update the binary:
- Checks releases from both GitHub and Gitee APIs
- Supports semver comparison for version checking
- Downloads and replaces binary automatically (except Windows)
- Includes i18n support for all messages
- Adds Discord slash command integration
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add bot mention requirements for group messages across Discord, Feishu, and Telegram platforms:
- Discord: Only respond when bot is @mentioned in guild channels
- Feishu: Add bot openID detection and mention filtering for group chats
- Telegram: Add group message filtering and mention handling
Includes helper functions for mention stripping and detection.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
- Store http.Server instance in APIServer struct for better resource management
- Enhance provider listing with current provider marker and remove bold formatting
- Update i18n strings for provider list titles
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add builtinCommands list and prefix matching functionality for commands/subcommands. Improve session switching by supporting numeric indices. Update help messages and session listing format to reflect these changes. Simplify command parsing by removing redundant slash prefix handling.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Added timeout mechanisms with logging for graceful session closure across multiple agent types (claudecode, codex, cursor, gemini, opencode, qoder). Modified engine cleanup to handle timeouts and improve logging. Sessions now timeout after 8-10 seconds with appropriate warnings/errors.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add support for routing Claude Code requests through Claude Code Router,
enabling multi-provider support (OpenRouter, DeepSeek, Gemini, etc.) and
dynamic model switching.
Changes:
- Add router_url and router_api_key configuration options
- Automatically set ANTHROPIC_BASE_URL when router is configured
- Set NO_PROXY, DISABLE_TELEMETRY, DISABLE_COST_WARNINGS for clean integration
- Update documentation with setup guide and usage examples
- Add configuration examples in config.example.toml
The integration is backward compatible - when router_url is not configured,
the agent behaves exactly as before. When configured, all requests are
transparently routed through Claude Code Router.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Check for non-nil error before formatting error message to avoid wrapping nil errors.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add context-aware select statements when sending events to prevent blocking on closed channels. Implement secure argument logging using RedactArgs to mask sensitive flags. Add atomic file writes and locks for config safety. Improve session handling with mutex protection and deduplication checks.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add slow operation thresholds and logging for agent/platform operations.
Track and warn on slow agent session start/send/close, first event latency,
and platform send/reply operations. Add turn duration metrics and improve
existing logging with timing information.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Remove fixed 200-rune truncation from all agents since truncation
is now handled dynamically via /config (thinking_max_len, tool_max_len).
Affected agents: claudecode, codex, cursor, gemini, qoder
Co-Authored-By: Claude <noreply@anthropic.com>
/config:
- Add description for each config item (en/zh)
- Show description in config list and get output
- Improve usage hints with examples
/doctor:
- Localize check names (zh/ja translations)
- Use i18n system for title and summary
- Cleaner output format
Co-Authored-By: Claude <noreply@anthropic.com>
/config command:
- View runtime configuration (thinking_max_len, tool_max_len)
- Update config values with persistence to config.toml
- Short syntax: /config <key> [value]
/doctor command:
- Run system diagnostics and health checks
- Check agent CLI binary and authentication
- Check platform connections
- Check system resources (memory, CPU, disk)
- Check dependencies (git, sqlite3, ffmpeg)
- Check network connectivity to API endpoints
Full i18n support for 5 languages.
Co-Authored-By: Claude <noreply@anthropic.com>
- Add message count display for each session
- Use first user message as summary fallback instead of session ID
- Fix meta value reading (direct TEXT read, not hex() wrapped)
- Add RootBlobID tracking for message blob traversal
- Parse blob protobuf structure to count user/assistant messages
Co-Authored-By: Claude <noreply@anthropic.com>
Add support for discovering and invoking agent skills from SKILL.md files:
- Skills are auto-discovered from .claude/skills/<name>/SKILL.md (claudecode)
and .gemini/skills/<name>/SKILL.md (gemini)
- New /skills command to list available skills
- Skills can be invoked via /<skill-name> [args...]
- SKILL.md supports optional YAML frontmatter (description, name)
- Full i18n support for 5 languages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add OpenCode to support matrix (4 agents → 5 agents)
- Add OpenCode permission modes section
- Add OpenCode to prerequisites, provider env mapping, project structure
- Add OpenCode config example in config.example.toml
- Update both English and Chinese README
OpenCode (`opencode run --format json`) streams NDJSON events,
similar to the Gemini agent. This wires it up so users can drive
OpenCode from Telegram / Discord / Slack / etc.
- agent/opencode/opencode.go — agent struct, factory, model/mode/provider switching
- agent/opencode/session.go — subprocess lifecycle, NDJSON event → core.Event mapping
- cmd/cc-connect/main.go — register the "opencode" agent
Add support for customizable slash commands that expand prompt templates with arguments. Includes:
- CommandProvider interface for agent-specific command directories
- Command registry with config.toml and agent file support
- Template expansion with placeholders ({{1}}, {{args}}, etc.)
- Dynamic command management via `/commands add/del`
- Multi-language support and documentation
- Example config additions and implementation for Claude/Gemini agents
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>
Add support for running cc-connect as a daemon managed by OS init system:
- Linux: systemd user service
- macOS: launchd LaunchAgent
New CLI commands:
- cc-connect daemon install/uninstall
- cc-connect daemon start/stop/restart/status
- cc-connect daemon logs [-f] [-n N] [--log-file PATH]
Features:
- Auto log rotation with configurable max size
- Cross-platform support (systemd/launchd)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
An empty http.Transport{} loses Go's default TLS settings, causing
NewBotAPIWithClient to hang on the initial getMe call. Only set a
custom transport when a proxy URL is actually provided.
Support HTTP/SOCKS5 proxy for Telegram API requests via config options:
proxy = "http://proxy.example.com:8080"
proxy_username = "user" # optional
proxy_password = "pass" # optional
Covers both bot API calls and file downloads. Follows the same
pattern as the existing wecom proxy implementation.
Closes#6
The documentation has been updated to remove all beta labels and references, indicating that previously beta features are now considered stable. This includes removing beta installation instructions, updating feature status indicators, and removing beta section headers.
generated by llmgit
Co-Authored-By: Claude <noreply@anthropic.com>