deer-flow/backend/docs/MEMORY_SETTINGS_REVIEW.md
Kiko0301 d142aee83f
fix(memory): keep sample import backups unique per run (#7418)
* fix(memory): keep sample import backups unique per run

* docs(memory): clarify backup retention and align script format

---------

Co-authored-by: Kiko0301 <191240073+Kiko0301@users.noreply.github.com>
2026-10-24 21:50:27 +08:00

3.2 KiB

Memory Settings Review

Use this when reviewing the Memory Settings add/edit flow locally with the fewest possible manual steps.

Quick Review

  1. Start DeerFlow locally using any working development setup you already use.

    Examples:

    make dev
    

    or

    make docker-start
    

    If you already have DeerFlow running locally, you can reuse that existing setup.

  2. Open Settings > Memory.

    Default local URLs:

    • App: http://localhost:2026
    • Local frontend-only fallback: http://localhost:3000
  3. Click Import memory and select:

    backend/docs/memory-settings-sample.json
    

    The browser imports the fixture into the currently signed-in user's memory.

Bulk Local Review

To replace memory for every registered user in a disposable review environment:

cd backend
uv run python ../scripts/load_memory_sample.py --all-users

This command:

  • supports SQLite and PostgreSQL registered-user databases;
  • creates a unique timestamped backup directory under .deer-flow/memory-sample-backups/ before replacing memory, even when imports start in the same second;
  • imports through the configured memory storage provider; and
  • rejects database.backend: memory, which has no persistent user registry.

Bulk loading replaces every registered user's memory. Do not run it against an environment containing memory you need to preserve. Backups accumulate until removed manually. On POSIX, each new backup directory is private to the creating OS user (mode 0700); restoring as another user may require adjusting permissions. Pass --no-backup only when losing the existing memory is acceptable.

Minimal Manual Test

  1. Click Add fact.
  2. Create a new fact with:
    • Content: Reviewer-added memory fact
    • Category: testing
    • Confidence: 0.88
  3. Confirm the new fact appears immediately and shows Manual as the source.
  4. Edit the sample fact This sample fact is intended for edit testing. and change it to:
    • Content: This sample fact was edited during manual review.
    • Category: testing
    • Confidence: 0.91
  5. Confirm the edited fact updates immediately.
  6. Refresh the page and confirm both the newly added fact and the edited fact still persist.

Optional Sanity Checks

  • Search Reviewer-added and confirm the new fact is matched.
  • Search workflow and confirm category text is searchable.
  • Switch between All, Facts, and Summaries.
  • Delete the disposable sample fact Delete fact testing can target this disposable sample entry. and confirm the list updates immediately.
  • Clear all memory and confirm the page enters the empty state.

Fixture Files

  • Sample fixture: backend/docs/memory-settings-sample.json
  • Per-user file-storage target: backend/.deer-flow/users/{user_id}/memory.json
  • Bulk backups: backend/.deer-flow/memory-sample-backups/{timestamp}-{unique-suffix}/{user_id}.json

For an explicit one-file copy, pass --target PATH to the loader. Its sidecar backup is {target.name}.bak-{timestamp}-{unique-suffix} beside the target; repeated imports never reuse a backup path. There is no implicit target because authenticated sessions use different per-user paths.