Skip to content

CLI-only local sync is a dead end: docs reference removed 'basic-memory sync', status --wait can never finish, bm reindex is the undiscoverable answer #959

@phernandez

Description

@phernandez

Summary

For CLI-only usage (no running MCP/API server), there is no discoverable way to index externally-created files, and the existing signposts actively mislead:

  1. README.md:593 and the repo CLAUDE.md still reference basic-memory sync — the command no longer exists (No such command 'sync')
  2. bm status correctly reports pending changes (notes/ +1 new)
  3. bm status --wait claims to "block until indexing is complete" — but in CLI-only contexts it always times out: the SyncCoordinator that does the indexing starts in the API app lifespan (api/app.py:71), and the CLI's httpx ASGITransport never runs the lifespan, so no indexer is running and none will come
  4. The actual answer is bm reindex (incremental filesystem scan by default) — verified working — but nothing points to it, and its name suggests rebuilding rather than picking up new files

Reproduction (v0.21.6 / main @ 650f88a)

mkdir -p ~/scratch/notes && echo "..." > ~/scratch/notes/note.md
bm project add scratch ~/scratch --local
bm status --project scratch              # → "notes/ +1 new"  ✓
bm sync                                  # → Error: No such command 'sync'
bm status --project scratch --wait --timeout 60
# → "Error: Timed out after 60s ... (1 pending change(s) remaining)"
bm tool read-note "notes/note" --project scratch --local   # → all-null payload
bm reindex --project scratch             # → indexes + embeds the file  ✓
bm tool read-note "notes/note" --project scratch --local   # → works  ✓

Suggested fixes (any subset)

  • Update README/CLAUDE.md to stop referencing basic-memory sync
  • Make bm status --wait fail fast (or warn) when no sync coordinator can run, pointing at bm reindex
  • Consider a bm sync alias for bm reindex's incremental scan — it's what users coming from the documented workflow will type

Context

Found during #952 manual verification (section 1 CLI page sweep). Same session as #954#958.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdocumentationImprovements or additions to documentation
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions