Code review findings — must fix before production use:
1. compact() doesn't clean up summarized thoughts
After writing summary thought, original individual thoughts remain in OpenBrain.
Unbounded storage growth over time; listRecent() returns stale messages already covered by summaries.
Fix: after writing summary, delete or mark the thoughts that were summarized.
2. ingestBatch() is sequential
Awaits each ingest() call in a for loop. Bootstrapping 50 messages = 50 serial HTTP calls.
Fix: use Promise.all (with concurrency cap e.g. p-limit or simple batching).
3. trimToBudget() skips instead of stops
Uses continue instead of break when a message exceeds budget.
Iterates full array unnecessarily when budget is exhausted early.
Fix: break on first message that won't fit (iterating newest-to-oldest).
Code review findings — must fix before production use:
**1. compact() doesn't clean up summarized thoughts**
After writing summary thought, original individual thoughts remain in OpenBrain.
Unbounded storage growth over time; listRecent() returns stale messages already covered by summaries.
Fix: after writing summary, delete or mark the thoughts that were summarized.
**2. ingestBatch() is sequential**
Awaits each ingest() call in a for loop. Bootstrapping 50 messages = 50 serial HTTP calls.
Fix: use Promise.all (with concurrency cap e.g. p-limit or simple batching).
**3. trimToBudget() skips instead of stops**
Uses continue instead of break when a message exceeds budget.
Iterates full array unnecessarily when budget is exhausted early.
Fix: break on first message that won't fit (iterating newest-to-oldest).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Code review findings — must fix before production use:
1. compact() doesn't clean up summarized thoughts
After writing summary thought, original individual thoughts remain in OpenBrain.
Unbounded storage growth over time; listRecent() returns stale messages already covered by summaries.
Fix: after writing summary, delete or mark the thoughts that were summarized.
2. ingestBatch() is sequential
Awaits each ingest() call in a for loop. Bootstrapping 50 messages = 50 serial HTTP calls.
Fix: use Promise.all (with concurrency cap e.g. p-limit or simple batching).
3. trimToBudget() skips instead of stops
Uses continue instead of break when a message exceeds budget.
Iterates full array unnecessarily when budget is exhausted early.
Fix: break on first message that won't fit (iterating newest-to-oldest).