zeroclaw/CHANGELOG.md
ZeroClaw Contributor c0a80ad656 feat(channel): add mention_only option for Telegram groups
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)
2026-02-18 19:51:42 +08:00

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 to enc2: (ChaCha20-Poly1305 AEAD) when decrypted via decrypt_and_migrate(). A tracing::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 migrated enc2: value if the input used the legacy enc: format
  • SecretStore::needs_migration() — Check if a value uses the legacy enc: format
  • SecretStore::is_secure_encrypted() — Check if a value uses the secure enc2: format
  • Telegram mention_only mode — New config option mention_only for 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 — Use enc2: (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)