Skip to content

Cloud sync/bisync commands hardcode force_full=True instead of using incremental sync #706

Description

@phernandez

Problem

The bm cloud sync and bm cloud bisync CLI commands hardcode force_full=True when triggering the database sync after file sync. This causes every sync operation to bypass incremental change detection and do a full re-index, which is wasteful and slow.

This was a development-time convenience that was never reverted.

Logfire trace showing the issue:
https://logfire-us.pydantic.dev/basic-memory/basic-memory-cloud?q=trace_id%3D%27019d49615caaa705493e2a4f7cb762d6%27+and+span_id%3D%279f6b06b8360d8679%27&spanId=9f6b06b8360d8679&traceId=019d49615caaa705493e2a4f7cb762d6

The trace shows POST /proxy/my-vault/project/sync ? force_full='true' — the caller is sending force_full=true as a query parameter on every sync.

Location

src/basic_memory/cli/commands/cloud/project_sync.py

Two occurrences:

  1. sync_project_command (line ~134):
return await ProjectClient(client).sync(
    project_data.external_id, force_full=True  # should be False
)
  1. bisync_project_command (line ~209):
return await ProjectClient(client).sync(
    project_data.external_id, force_full=True  # should be False
)

Fix

Change both calls to force_full=False (or just remove the parameter since the default is already False).

The force_full=True behavior should only be used by explicit admin operations like reindex_all_tenants and bm doctor, not normal sync flows.

Activity

  1. claude commented on Apr 1, 2026

    @claude
    Contributor

    Claude finished @phernandez's task in 1m 21s —— View job • claude/issue-706-20260401-1417 • Create PR ➔


    Triage & Fix

    Classification: Bug | Priority: High | Component: Cloud/CLI | Complexity: Simple

    • Analyze issue
    • Read source file and verify the bug
    • Apply fix (change force_full=True → force_full=False in both locations)
    • Add bug label
    • Commit and push changes

    What was fixed:

    In src/basic_memory/cli/commands/cloud/project_sync.py, two calls to ProjectClient.sync() hardcoded force_full=True:

    • Line 134 (sync_project_command)
    • Line 209 (bisync_project_command)

    Both were changed to force_full=False, so normal sync/bisync operations now use incremental change detection instead of triggering a full re-index every time.

  2. added a commit that references this issue on Apr 1, 2026
    05939a9
  3. added this to the teams-golive milestone on Apr 2, 2026
  4. self-assigned this
    on Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingvalidatedTested and verified working

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions