zeroclaw/src
Aleksandr Prilipko 3b29d0c90e feat(channel): surface Telegram reply context to the agent
When a user swipes to reply to a specific message, the agent now
receives the quoted original message as a blockquote prefix, e.g.:

  > @alice:
  > original message text

  translate this

This makes reply-to-voice ("translate this" → previous transcription)
and other reply-aware interactions work correctly.

Changes:
- Extract `extract_sender_info` helper (DRY: was duplicated in
  parse_update_message and try_parse_voice_message)
- Add `extract_reply_context` helper: parses reply_to_message,
  handles text/voice/photo/document/video/sticker, truncates >200
  chars, falls back from username to first_name
- Wire reply context into both parse_update_message and
  try_parse_voice_message
- Add 8 unit tests covering all branches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 12:57:32 +08:00
..
agent fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
approval refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
auth refactor(auth): make auth profile store async 2026-02-21 02:25:23 +08:00
channels feat(channel): surface Telegram reply context to the agent 2026-02-21 12:57:32 +08:00
config feat(channel): add voice message transcription via Whisper API 2026-02-21 12:48:47 +08:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
daemon fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
doctor feat(channel): add native nextcloud talk webhook integration 2026-02-20 23:28:18 +08:00
gateway feat(observability): wire token usage through observer events 2026-02-21 12:29:02 +08:00
hardware fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat test: deepen and complete project-wide test coverage (#297) 2026-02-16 05:58:24 -05:00
integrations fix(onboard): require explicit overwrite confirmation for existing config 2026-02-21 02:25:21 +08:00
memory chore(fmt): apply rustfmt after main rebase 2026-02-21 12:09:06 +08:00
observability test(provider): fix ChatResponse usage in reliable mocks 2026-02-21 12:46:22 +08:00
onboard feat(channel): add voice message transcription via Whisper API 2026-02-21 12:48:47 +08:00
peripherals fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00
providers feat(providers): Gemini OAuth credential rotation and token refresh 2026-02-21 12:56:18 +08:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime docs(code): expand doc comments on security, observability, runtime, and peripheral traits 2026-02-19 13:19:46 -08:00
security fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
service fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills feat(skills): add configurable compact skills prompt injection 2026-02-21 00:00:51 +08:00
tools fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
tunnel feat(proxy): add scoped proxy configuration and docs runbooks 2026-02-18 22:10:42 +08:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs fix(cli): restore shared command enum wiring 2026-02-21 11:57:29 +08:00
main.rs fix(cli): restore shared command enum wiring 2026-02-21 11:57:29 +08:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00