feat: Fix bm CLI runtime defects and audit regressions#596
Conversation
Fixes reset shutdown hang, sqlite search-notes metadata MATCH context, cloud upload --no-sync routing, and cloud API-key error remediation; adds focused regression tests (including Postgres coverage for search filters). Note: cloud project-info behavior (bm project info --cloud) still depends on cloud deployment state and must be re-verified after deploying the corresponding backend changes. Signed-off-by: phernandez <paul@basicmachines.co>
|
Claude finished @phernandez's task in 2m 27s —— View job PR Review: Fix bm CLI runtime defects and audit regressionsTasks:
Review SummaryThis PR delivers five targeted bug fixes with focused regression tests for each. The changes are well-scoped and follow the project's "minimize diffs" principle. Overall quality is high — a few observations below. Code Quality & Standards ✅
Testing & Documentation ✅
Basic Memory Architecture ✅
Security & Performance ✅
Observations1. BM25 Relevance Scoring May Degrade with Combined FiltersFile: The fix correctly solves the -- Outer query has no MATCH on search_index — bm25() will return NULL or 0
SELECT ..., bm25(search_index) as score
FROM search_index JOIN entity ...
WHERE ... AND search_index.rowid IN (SELECT rowid FROM search_index WHERE title MATCH :text)
ORDER BY score ASCWhen 2. Debug Log May Fail on Non-JSON Success ResponsesFile: logger.debug(f"response: {response.json()}")This line only runs on successful responses, but logger.debug(f"response: {response.text[:200]}") # safer3. Minor: Double
|
Summary
bm resetshutdown hang in non-interactive flowssearch-notesquery + metadata filter MATCH context errorbm cloud upload --no-syncWebDAV routing pathValidation
Runtime notes (hang fixes)
bm resetandbm reset --reindexpreviously hung after printing completion when run non-interactively (for example with pipedy).printf 'y\n' | uv run bm resetprintf 'y\n' | uv run bm reset --reindex0.Follow-up after cloud deploy
bm project info --cloudmust be re-verified after deploying corresponding cloud backend changes (proxy/API alignment).Internal proxy error: Project '<name>' not found in configurationfor/proxy/v2/projects/{id}/info.