Skip to content

Fix: Mark offline WhatsApp messages as read#193

Merged
steipete merged 4 commits intoopenclaw:mainfrom
mcinteerj:fix/whatsapp-offline-read-receipts
Jan 5, 2026
Merged

Fix: Mark offline WhatsApp messages as read#193
steipete merged 4 commits intoopenclaw:mainfrom
mcinteerj:fix/whatsapp-offline-read-receipts

Conversation

@mcinteerj
Copy link
Copy Markdown
Contributor

Fixes an issue where WhatsApp messages received while the gateway was offline (history sync) were never marked as read.

Changes:

  • Modified handleMessagesUpsert in src/web/inbound.ts to process append events (used by Baileys for history/offline messages).
  • The new logic marks these messages as read (sending blue ticks) but explicitly skips the auto-reply (onMessage) loop to prevent the bot from replying to old history.
  • Added a regression test in src/web/monitor-inbox.test.ts to confirm append messages are marked as read but ignored by the auto-reply handler.

Motivation:
Improves UX by clearing unread badges for history sync. This also helps account health, as leaving earlier history "unread" while replying to new messages can look like bot behavior to anti-abuse systems.

@mcinteerj mcinteerj force-pushed the fix/whatsapp-offline-read-receipts branch from 6dfcc2f to a6f7ab4 Compare January 4, 2026 22:25
@steipete steipete merged commit 3fc9acc into openclaw:main Jan 5, 2026
11 of 13 checks passed
dgarson referenced this pull request in dgarson/clawdbot Feb 7, 2026
…ion (#193)

Restructure the command palette with drill-down sub-menus:

- Navigate to... — Full list of all pages (Home, Conversations, Agents,
  Goals, Memories, Rituals, Automations, Workstreams, Settings, Dashboard)
- Agents — Chat with or view any agent (shows all, not just top 5)
- Appearance — Theme toggle, dark/light selection, power user mode,
  sidebar toggle
- Settings & Config — Profile, Gateway config, Nodes, Keyboard shortcuts,
  Power user mode

Navigation UX:
- Breadcrumb header shows current sub-menu with back button
- Backspace on empty search returns to root menu
- Escape from sub-menu returns to root (doesn't close dialog)
- ChevronRight indicator on category items signals drill-down
- Root page still shows quick-access items (top 5 nav, top 3 agents)
  for power users who know what they want

Also marks goal templates as complete in BACKLOG.md (PR #184).
songliu0403-rgb pushed a commit to songliu0403-rgb/openclaw that referenced this pull request Feb 26, 2026
venhi5282 pushed a commit to venhi5282/openclaw that referenced this pull request Mar 9, 2026
…openclaw#193)

* Initial plan

* fix(session): 防止 stale threadId 泄漏到非 thread session

移植上游 commit 5f821ed:
- 修复用户从 DM topic (thread) 切换到主 DM 时,stale lastThreadId 导致回复错误发送到旧 topic 的问题
- 仅在 thread session 中回退到 baseEntry.lastThreadId
- 添加测试覆盖:非 thread session 不继承 lastThreadId,thread session 保留 lastThreadId

感谢上游 @j2h4u 和 Claude Opus 4.6 的贡献

Co-authored-by: jiulingyun <126459548+jiulingyun@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jiulingyun <126459548+jiulingyun@users.noreply.github.com>
ronan-dandelion-cult pushed a commit to karmaterminal/openclaw that referenced this pull request Apr 19, 2026
…le + status restoration

Updates RFC docs/design/continue-work-signal-v2.md to reflect the totality of changes since 107ca2b (the prior RFC edit) plus the two ship-gate PRs about to land:

- §4.3: document session provider/model threading through volitional compaction (openclaw#191 / bootstrap#639). Three coupled defects: root cause, caller-honesty (phantom-counter), visibility (`unknown_model` classifier + `isLegitSkipReason` helper + `log.warn` on resolve-with-fallback + scope-aware `authProfileId`).
- §6.1: add `[context-pressure:noop]` log anchor with reason taxonomy (window-zero / below-threshold / band-dedup); document the bootstrap#580 investigation cycle (`:reach`/`:skip` instrumentation, root cause = sentinel collision on band 0, fix = -1 sentinel).
- §6.3: clarify Discord/agent path through src/auto-reply/status.ts was reconnected at openclaw#187 + tested at #188 (the line had been silently dropped in an earlier refactor); note `volitional: N` is honest only after #191.
- §6.4: replace 'instrumentation is not currently in place' note with status of distinguishing-instrumentation work (openclaw#164/171/172/173).
- Appendix C.1: add 'Closed failure modes' table — phantom-counter, hedge-timer ref leak, band-0 dedup, precondition-skip blindness, Copilot summarization headers, dist-bundle satellite chunks, subagent-announce runtime path mismatch.
- Appendix D.2: add evidence-location rows for the new file paths (volitional threading sites; armHedgeTimer; status renderer; request-compaction-tool tests; context-pressure noop sites; agent-runner runtime promotion; subagent-announce co-location; F-NOISE scheduler test).
- Header: bump test count (~180 across 13 files, was '172 across 8') to reflect additions in #165, #170, #188, #193.

Skip-list (no RFC mention): #174 sessions/config raw-key sweep (internal hygiene); #173 Copilot log-enabled nits (micro-hygiene); 86134af removal of investigation breadcrumbs (cycle is folded into §6.1 narrative).

Refs:
  openclaw#191 head fc3f415 (in-flight, MERGEABLE/UNSTABLE, APPROVED)
  openclaw#193 head 14483a6   (in-flight, MERGEABLE/UNSTABLE, APPROVED x2)
  openclaw#187, #188 (merged d787890)
  openclaw#160, #162, #164, #165, #169, #170, #171, #172, #173, #174

🍆 in 🩲: this is a docs PR; if either #191 or #193 changes shape pre-merge the affected paragraph here will need a one-line touch-up.

Co-Authored-By: dandelion cult - ronan 🌊 <karmafeast@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants