Files
openclaw/extensions/imessage
Yuval Dinodia 86c3486721 fix(imessage): rewind the recovery cursor when chat.db is replaced at the same path (#117788)
* fix(imessage): rewind the recovery cursor when chat.db is replaced at the same path

A restored, rebuilt, or symlink-retargeted chat.db keeps the configured
pathname, so it keeps the same recovery-cursor identity while its rowid
sequence restarts far below the persisted high-water. Startup then seeded
since_rowid with the stale value and imsg, which emits only rows above it,
suppressed every inbound message in the replacement database, including
messages arriving after the restart.

loadIMessageRecoveryCursor now takes the startup watermark and reconciles
the stored cursor against it. A cursor above the database's current
MAX(ROWID) cannot belong to the file now at that path, so the persisted
high-water rewinds to the new watermark and the monitor tails the
replacement database instead of skipping it.

* fix(imessage): rewind the recovery cursor for an empty rebuilt chat.db

A successful MAX(ROWID) on an empty message table yields null, the same value the watermark read returns for an unreadable database, so an empty rebuilt chat.db kept the stale high-water and suppressed its first rows. Return 0 for a readable empty table and keep null for an unavailable one.

* fix(imessage): preserve first row during empty database startup

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-02 17:00:01 +08:00
..

@openclaw/imessage

Official iMessage channel plugin for OpenClaw, using imsg on a signed-in Mac.

The plugin supports iMessage and SMS DMs and groups, media, replies, tapbacks, effects, polls, and group management when the imsg private API bridge is available.

Install

openclaw plugins install @openclaw/imessage

Restart the Gateway after installing or updating the plugin.

Configure

Follow the iMessage guide for installing imsg, granting macOS permissions, enabling private API actions, and configuring local or remote-Mac operation:

Package

  • Plugin id: imessage
  • Channel id: imessage
  • Package: @openclaw/imessage
  • Minimum OpenClaw host: 2026.7.2