$ the-wire · showcase
Telegram webhook durability and reply-target RPC calls land
By RepoJournal · Filed · About OpenClaw
This week's patch batch hardens Telegram webhook updates against crashes, makes iMessage RPC replies fail loudly instead of falling back, and fixes vote casting on native Messages polls.
Telegram webhook mode used to acknowledge 200 to Telegram before any persistence, so an in-flight update was silently lost on crash, restart, deploy, or transient processing failure. The fix now durably spools updates before acking, closing the drop window, and also resolves three sibling webhook gaps including a startup getMe blip that previously failed the whole session [1]. Separately, Telegram sends and message actions that omit an account id now honor the configured channels.telegram.defaultAccount instead of being hijacked by leftover credentials like a stale TELEGRAM_BOT_TOKEN [2].
The iMessage bridge now routes RPC send replies with reply_to targets into the bridge selectedMessageGuid payload, matching send.rich behavior, and reply-target sends now fail instead of silently degrading to unthreaded AppleScript when the bridge is unavailable [3]. The project also shipped imsg poll vote, a new poll.vote RPC method, and the send-poll-vote bridge action, allowing native Apple Messages poll voting via associated messages [4]. The companion fix for the orchestration layer adds a numbered-options vote cue to inbound polls and suppresses poll-vote echo [5].
Fal reference-image calls for xai/grok-imagine-image and google/nano-banana-2-lite were falling through to /image-to-image, which Fal does not expose; they now route to the standard /edit endpoint, with grok's separate quality tier also correctly targeted [6]. MCP stdio sessions that crash mid-run now flip session.connected and surface a domain-specific "is disconnected" error on the next tool call instead of leaving the session stale and echoing the SDK's generic message [7]. Chat deletion on macOS 26 now prefers the existing deleteChat: selector and falls back to the _chat_remove: registry path when needed [8]. Clownfish landed a batch of reliability fixes for external merge preflights and GitHub API retries [9].
The team notes in imsg: "Reply-target sends now fail instead of falling back to unthreaded AppleScript delivery when the bridge is unavailable or fails" [3].
Action items
- → Deploy the Telegram webhook durability fix to avoid silent update loss on restart openclaw/openclaw [immediate]
- → Verify any iMessage reply-to sends in production use a configured bridge; they now fail without one openclaw/imsg [plan]
- → Test native Messages poll voting and Fal image-edit routing after deploying the latest agent changes openclaw/openclaw [plan]
References
- [1] fix(telegram): webhook updates survive crashes and restarts via durable spooling ↗ openclaw/openclaw
- [2] fix(telegram): sends and actions without an account id ignore the configured defaultAccount ↗ openclaw/openclaw
- [3] fix: thread rpc send replies ↗ openclaw/imsg
- [4] feat(poll): cast votes on native Messages polls ↗ openclaw/imsg
- [5] fix(imessage): native poll vote-cue, echo suppression, and same-sender comment fold ↗ openclaw/openclaw
- [6] fix(fal): route grok-imagine and nano-banana-2-lite edits to correct endpoints ↗ openclaw/openclaw
- [7] fix(agents): fail fast with attributable reason after MCP stdio session dies mid-run (#98738) ↗ openclaw/openclaw
- [8] fix(bridge): restore chat deletion on macOS 26 ↗ openclaw/imsg
- [9] fix: retry transient GitHub apply failures ↗ openclaw/clownfish