Dream: consolidate the memory store
memory_dreamMerge same-named memories from the project and machine-wide profile stores, unioning divergent copies instead of picking a winner, and preview the plan as a dry run before applying any change.
Instructions
Consolidate the memories the project layer and the machine-wide profile layer hold under the SAME NAME, and say exactly what changed. Byte-identical copies collapse to one; a pair that has diverged is UNIONED — every claim from both copies survives, never a winner-takes-all — and a relative date in a body is annotated with the day it resolves to against that fact's own mtime, never against today. The survivor stays in the writable project layer and the profile copy MOVES to that store's archive/: nothing is deleted, and bringing a consumed copy back is an operator action, not a tool — bantamkit-memory restore <name> or python -m bantamkit.memory restore <name> on the profile store. This is a correctness pass, not a token saving: the profile index is derived at read time and is not loaded from a prompt, so consolidating it frees approximately no bytes — what it buys is one copy of a ruling instead of two that can disagree. It defaults to a DRY RUN because the profile store is machine-wide: a memory archived out of it stops answering for every other project on this machine that has no store of its own. Read the plan first, then call it again with dry_run false to apply it. For room in the index call memory_compact instead; for the facts themselves, memory_recall.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | Preview only. True (the default) performs every read, merge and projection and writes nothing. Pass false to apply the plan. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |