Conversation
PR SummaryMedium Risk Overview Memory sync background jobs now enqueue on failure and are drained periodically from the main process (plus force-flushed after successful EvalOps login), with new IPC endpoints ( Reviewed by Cursor Bugbot for commit 55de74d. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit 55de74d. Configure here.
| queueFlushPromise = null | ||
| }) | ||
| return queueFlushPromise | ||
| } |
There was a problem hiding this comment.
Force flush flag silently dropped during concurrent execution
Medium Severity
flushEvalOpsMemorySyncQueue returns the existing queueFlushPromise when a flush is already in progress, completely ignoring the force flag. If the periodic (non-force) drain is running when the user logs in or clicks Retry, the force: true call silently joins the non-force drain — which only processes items past their nextAttemptAt. Items backing off (e.g., with a 30-minute delay) won't be retried as expected.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 55de74d. Configure here.
| queueMemorySyncFailure(category, itemId, audioPath, errorMessage(err)) | ||
| throw err | ||
| } | ||
| } |
There was a problem hiding this comment.
Queued jobs silently deleted when sync category disabled
Medium Severity
runMemorySyncJob delegates to syncChatThreadMemory/syncMeetingSummaryMemory/syncJournalEntryMemory, each of which returns early (no error) when isMemorySyncEnabled is false. On success, removeQueuedMemorySync deletes the job from the durable queue. So if a sync category is disabled between initial failure and retry, the drain loop silently discards queued items without actually syncing them.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 55de74d. Configure here.


Summary
Refs #15.
Validation
npm ci --ignore-scriptsnpm run buildgit diff --checkValidation caveat
npm testinitially failed because the fresh clone did not have the native ContextKit binary.npm run contextkit:build,npm testgot through ContextKit and meeting detection, then failed inaudio-data-size.test.mjsbecause the local WAV duration reported0.0sdespite receiving mic buffers and writing a 158 KB mic file. That appears unrelated to this memory-sync queue change.