Fix: filter empty messages from polling queries (#383)

* fix: filter empty messages from polling queries

WhatsApp history sync writes empty protocol artifacts (delivery receipts,
status updates) to the database. On fresh installs, the main channel
(no trigger required) picks these up and spawns a container agent
unnecessarily, causing a message loop on first startup.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update test to match empty-content filtering in queries

The getMessagesSince query now filters out empty messages, so the test
should expect 0 results instead of 1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Daniel M
2026-02-23 00:06:08 +02:00
committed by GitHub
parent f5b2068852
commit e59856fbec
2 changed files with 4 additions and 3 deletions

View File

@@ -61,7 +61,7 @@ describe('storeMessage', () => {
expect(messages[0].content).toBe('hello world'); expect(messages[0].content).toBe('hello world');
}); });
it('stores empty content', () => { it('filters out empty content', () => {
storeChatMetadata('group@g.us', '2024-01-01T00:00:00.000Z'); storeChatMetadata('group@g.us', '2024-01-01T00:00:00.000Z');
store({ store({
@@ -74,8 +74,7 @@ describe('storeMessage', () => {
}); });
const messages = getMessagesSince('group@g.us', '2024-01-01T00:00:00.000Z', 'Andy'); const messages = getMessagesSince('group@g.us', '2024-01-01T00:00:00.000Z', 'Andy');
expect(messages).toHaveLength(1); expect(messages).toHaveLength(0);
expect(messages[0].content).toBe('');
}); });
it('stores is_from_me flag', () => { it('stores is_from_me flag', () => {

View File

@@ -295,6 +295,7 @@ export function getNewMessages(
FROM messages FROM messages
WHERE timestamp > ? AND chat_jid IN (${placeholders}) WHERE timestamp > ? AND chat_jid IN (${placeholders})
AND is_bot_message = 0 AND content NOT LIKE ? AND is_bot_message = 0 AND content NOT LIKE ?
AND content != '' AND content IS NOT NULL
ORDER BY timestamp ORDER BY timestamp
`; `;
@@ -322,6 +323,7 @@ export function getMessagesSince(
FROM messages FROM messages
WHERE chat_jid = ? AND timestamp > ? WHERE chat_jid = ? AND timestamp > ?
AND is_bot_message = 0 AND content NOT LIKE ? AND is_bot_message = 0 AND content NOT LIKE ?
AND content != '' AND content IS NOT NULL
ORDER BY timestamp ORDER BY timestamp
`; `;
return db return db