You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix: Dream CE needs token-budgeted batches and persistence acknowledgements #2547
Dream CE passes all pending memory IDs through motive formation, recall and reasoning in one run. A sufficiently large snapshot exceeds the model context window. Per-item character slices do not bound the fully rendered prompt. Persistence also catches write errors without returning an acknowledgement, so a caller cannot safely decide which signals were committed.
Minimal reproduction (no external model needed)
Use a fake graph returning 5,000 synthetic memories, each containing 1,200 repeated characters, and a fake LLM that records rendered message lengths.
Return one motive containing every candidate ID.
Run AbstractDreamPipeline with the default strategies. The reasoning prompt grows with the entire snapshot rather than a token budget. Repeat with a single very long memory: character truncation omits content without tracking unprocessed remainder.
Make graph.add_node raise for an insight or diary write: DreamPersistence logs the exception and returns normally.
Expected
Bound each fully rendered stage prompt including output reservation; process finite batches per run; acknowledge only exact source IDs after confirmed action and diary persistence; retain failures, oversized items and unprocessed IDs. Deduplicate overlapping scheduler snapshots and preserve pending signals across restart.
Related design discussions: #1701 and #1702. The local-plugin event-loop issue #1808 concerns a different implementation. This report concerns the Python Dream CE pipeline under src/memos/dream.
Activity