Adds mention_only config option to Telegram channel, allowing the bot to only respond to messages that @-mention the bot in group chats. Direct messages are always processed regardless of this setting. Behavior: - When mention_only = true: Bot only responds to group messages containing @botname - When mention_only = false (default): Bot responds to all allowed messages - DM/private chats always work regardless of mention_only setting Implementation: - Fetch and cache bot username from Telegram API on startup - Check for @botname mention in group messages - Strip mention from message content before processing Config example: [channels.telegram] bot_token = "your_token" mention_only = true Changes: - src/config/schema.rs: Add mention_only to TelegramConfig - src/channels/telegram.rs: Implement mention_only logic + 6 new tests - src/channels/mod.rs: Update factory calls - src/cron/scheduler.rs: Update constructor call - src/onboard/wizard.rs: Update wizard config - src/daemon/mod.rs: Update test config - src/integrations/registry.rs: Update test config - TESTING_TELEGRAM.md: Add mention_only test section - CHANGELOG.md: Document feature Risk: medium Backward compatible: Yes (default: false)
2.9 KiB
2.9 KiB
Changelog
All notable changes to ZeroClaw will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Security
- Legacy XOR cipher migration: The
enc:prefix (XOR cipher) is now deprecated. Secrets using this format will be automatically migrated toenc2:(ChaCha20-Poly1305 AEAD) when decrypted viadecrypt_and_migrate(). Atracing::warn!is emitted when legacy values are encountered. The XOR cipher will be removed in a future release.
Added
SecretStore::decrypt_and_migrate()— Decrypts secrets and returns a migratedenc2:value if the input used the legacyenc:formatSecretStore::needs_migration()— Check if a value uses the legacyenc:formatSecretStore::is_secure_encrypted()— Check if a value uses the secureenc2:format- Telegram mention_only mode — New config option
mention_onlyfor Telegram channel. When enabled, bot only responds to messages that @-mention the bot in group chats. Direct messages always work regardless of this setting. Default:false.
Deprecated
enc:prefix for encrypted secrets — Useenc2:(ChaCha20-Poly1305) instead. Legacy values are still decrypted for backward compatibility but should be migrated.
0.1.0 - 2026-02-13
Added
- Core Architecture: Trait-based pluggable system for Provider, Channel, Observer, RuntimeAdapter, Tool
- Provider: OpenRouter implementation (access Claude, GPT-4, Llama, Gemini via single API)
- Channels: CLI channel with interactive and single-message modes
- Observability: NoopObserver (zero overhead), LogObserver (tracing), MultiObserver (fan-out)
- Security: Workspace sandboxing, command allowlisting, path traversal blocking, autonomy levels (ReadOnly/Supervised/Full), rate limiting
- Tools: Shell (sandboxed), FileRead (path-checked), FileWrite (path-checked)
- Memory (Brain): SQLite persistent backend (searchable, survives restarts), Markdown backend (plain files, human-readable)
- Heartbeat Engine: Periodic task execution from HEARTBEAT.md
- Runtime: Native adapter for Mac/Linux/Raspberry Pi
- Config: TOML-based configuration with sensible defaults
- Onboarding: Interactive CLI wizard with workspace scaffolding
- CLI Commands: agent, gateway, status, cron, channel, tools, onboard
- CI/CD: GitHub Actions with cross-platform builds (Linux, macOS Intel/ARM, Windows)
- Tests: 159 inline tests covering all modules and edge cases
- Binary: 3.1MB optimized release build (includes bundled SQLite)
Security
- Path traversal attack prevention
- Command injection blocking
- Workspace escape prevention
- Forbidden system path protection (
/etc,/root,~/.ssh)