brentkearney

add-reactions

0
0
# Install this skill:
npx skills add brentkearney/nanoclaw-signal --skill "add-reactions"

Install specific skill from multi-skill repository

# Description

Add WhatsApp emoji reaction support β€” receive, send, store, and search reactions.

# SKILL.md


name: add-reactions
description: Add WhatsApp emoji reaction support β€” receive, send, store, and search reactions.


Add Reactions

This skill adds emoji reaction support to NanoClaw's WhatsApp channel: receive and store reactions, send reactions from the container agent via MCP tool, and query reaction history from SQLite.

Phase 1: Pre-flight

Check if already applied

Check if src/status-tracker.ts exists:

test -f src/status-tracker.ts && echo "Already applied" || echo "Not applied"

If already applied, skip to Phase 3 (Verify).

Phase 2: Apply Code Changes

Ensure WhatsApp fork remote

git remote -v

If whatsapp is missing, add it:

git remote add whatsapp https://github.com/qwibitai/nanoclaw-whatsapp.git

Merge the skill branch

git fetch whatsapp skill/reactions
git merge whatsapp/skill/reactions || {
  git checkout --theirs package-lock.json
  git add package-lock.json
  git merge --continue
}

This adds:
- scripts/migrate-reactions.ts (database migration for reactions table with composite PK and indexes)
- src/status-tracker.ts (forward-only emoji state machine for message lifecycle signaling, with persistence and retry)
- src/status-tracker.test.ts (unit tests for StatusTracker)
- container/skills/reactions/SKILL.md (agent-facing documentation for the react_to_message MCP tool)
- Reaction support in src/db.ts, src/channels/whatsapp.ts, src/types.ts, src/ipc.ts, src/index.ts, src/group-queue.ts, and container/agent-runner/src/ipc-mcp-stdio.ts

Run database migration

npx tsx scripts/migrate-reactions.ts

Validate code changes

npm test
npm run build

All tests must pass and build must be clean before proceeding.

Phase 3: Verify

Build and restart

npm run build

Linux:

systemctl --user restart nanoclaw

macOS:

launchctl kickstart -k gui/$(id -u)/com.nanoclaw

Test receiving reactions

  1. Send a message from your phone
  2. React to it with an emoji on WhatsApp
  3. Check the database:
sqlite3 store/messages.db "SELECT * FROM reactions ORDER BY timestamp DESC LIMIT 5;"

Test sending reactions

Ask the agent to react to a message via the react_to_message MCP tool. Check your phone β€” the reaction should appear on the message.

Troubleshooting

Reactions not appearing in database

  • Check NanoClaw logs for Failed to process reaction errors
  • Verify the chat is registered
  • Confirm the service is running

Migration fails

  • Ensure store/messages.db exists and is accessible
  • If "table reactions already exists", the migration already ran β€” skip it

Agent can't send reactions

  • Check IPC logs for Unauthorized IPC reaction attempt blocked β€” the agent can only react in its own group's chat
  • Verify WhatsApp is connected: check logs for connection status

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.