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:
README.md:593 and the repo CLAUDE.md still reference basic-memory sync — the command no longer exists (No such command 'sync')
bm status correctly reports pending changes (notes/ +1 new)
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
- 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.
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:
README.md:593and the repoCLAUDE.mdstill referencebasic-memory sync— the command no longer exists (No such command 'sync')bm statuscorrectly reports pending changes (notes/ +1 new)bm status --waitclaims 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 comebm reindex(incremental filesystem scan by default) — verified working — but nothing points to it, and its name suggests rebuilding rather than picking up new filesReproduction (v0.21.6 / main @ 650f88a)
Suggested fixes (any subset)
basic-memory syncbm status --waitfail fast (or warn) when no sync coordinator can run, pointing atbm reindexbm syncalias forbm reindex's incremental scan — it's what users coming from the documented workflow will typeContext
Found during #952 manual verification (section 1 CLI page sweep). Same session as #954–#958.