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:
@@ -61,7 +61,7 @@ describe('storeMessage', () => {
|
||||
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');
|
||||
|
||||
store({
|
||||
@@ -74,8 +74,7 @@ describe('storeMessage', () => {
|
||||
});
|
||||
|
||||
const messages = getMessagesSince('group@g.us', '2024-01-01T00:00:00.000Z', 'Andy');
|
||||
expect(messages).toHaveLength(1);
|
||||
expect(messages[0].content).toBe('');
|
||||
expect(messages).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('stores is_from_me flag', () => {
|
||||
|
||||
@@ -295,6 +295,7 @@ export function getNewMessages(
|
||||
FROM messages
|
||||
WHERE timestamp > ? AND chat_jid IN (${placeholders})
|
||||
AND is_bot_message = 0 AND content NOT LIKE ?
|
||||
AND content != '' AND content IS NOT NULL
|
||||
ORDER BY timestamp
|
||||
`;
|
||||
|
||||
@@ -322,6 +323,7 @@ export function getMessagesSince(
|
||||
FROM messages
|
||||
WHERE chat_jid = ? AND timestamp > ?
|
||||
AND is_bot_message = 0 AND content NOT LIKE ?
|
||||
AND content != '' AND content IS NOT NULL
|
||||
ORDER BY timestamp
|
||||
`;
|
||||
return db
|
||||
|
||||
Reference in New Issue
Block a user