Paul Hernandez
540da418b3
perf(sync): batch file indexing in core ( #726 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-08 01:21:49 -05:00
phernandez
e846ae85d8
fix: semantic embeddings not generated on fresh DB or upgrade
...
The previous backfill trigger relied on Alembic revision tracking, but
alembic_version only stores the head revision — intermediate revisions
(like the backfill trigger) are invisible after a multi-step upgrade or
fresh DB creation.
Three changes fix this:
1. Replace Alembic revision check with a simple "entities exist but
embeddings are empty" check that works regardless of migration path
2. Generate embeddings during sync — after FTS indexing, batch-embed all
synced entities at the end of the sync operation
3. Add background backfill at MCP startup for the upgrade path (entities
already exist, no embeddings) without blocking server readiness
Also adds clear startup logging for semantic embedding status so issues
are easy to spot in the logs.
📋 Covers: fresh DB, upgrade from pre-embedding version, db reset,
interrupted backfill
Signed-off-by: Pedro Hernandez <pedro@basicmachines.co >
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-07 13:23:39 -06:00
phernandez
d15f6a8427
Add batched vector sync orchestration across repositories
2026-03-03 16:36:06 -06:00
phernandez
54b968b93c
fix: reduce excessive log volume by demoting per-request noise to DEBUG ( #613 )
...
Demote high-frequency per-request/per-item logs from INFO to DEBUG:
- 🔇 Client routing decisions (async_client.py) — logged every MCP tool call
- 🔇 DB migration checks (db.py) — logged every ASGI client creation
- 🔇 Vector table ensure/ready (sqlite + postgres search repos) — logged every search
- 🔇 Per-entity search index start/complete (search_service.py) — logged every file sync
- 🔇 Incremental scan details + per-file permalink updates (sync_service.py)
- 🔇 MCP search tool params and no-results (search.py)
- 📉 Log retention: "10 days" → 5 files (~50MB cap)
API v2 request/response logs remain at INFO for observability.
Closes #613
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-26 19:48:24 -06:00
Paul Hernandez
b86dd6fb53
feat: Fix bm CLI runtime defects and audit regressions ( #596 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-20 22:59:29 -06:00
Paul Hernandez
306e562281
chore: Make semantic deps default, auto-backfill embeddings, and default search to semantic ( #586 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-02-19 18:31:15 -06:00
Paul Hernandez
55d675e278
feat: min_similarity override, cloud promo improvements ( #570 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 16:44:02 -06:00
Paul Hernandez
5947f04bd3
refactor: composition roots, deps split, and typed API clients ( #490 roadmap) ( #502 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 11:05:58 -06:00
Paul Hernandez
916baf8971
fix: prevent CLI commands from hanging on exit ( #471 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-24 11:27:11 -06:00
phernandez
a872220924
disable pooling for postgres db
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-29 13:24:47 -06:00
phernandez
b5d4fb559c
fix: postgres/neon connection settings and search index dedupe
...
- Reduce db_pool_recycle from 3600s to 180s for Neon scale-to-zero
- Add connect_args for Neon serverless (statement cache, timeouts, app name)
- Dedupe observation permalinks in search indexing to avoid unique constraint violations
- Add tests for duplicate observation permalink handling
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-29 11:24:08 -06:00
phernandez
ed894fc3ed
get db pool sizes from config
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-28 16:50:57 -06:00
phernandez
9b7bbc7116
formatting and logic change to resolve_relations, remove fuzzy search
2025-11-25 22:54:37 -06:00
phernandez
138c283d6c
add postgres db type
2025-11-25 20:25:56 -06:00
phernandez
7a8954c37e
add extra logic for cloud-indexing improvements
2025-11-25 13:52:58 -06:00
phernandez
10c7c19c03
fix db url for sqlite migrations
...
Signed-off-by: phernandez <paul@basicmachines.co >
2025-11-21 13:21:20 -06:00
Paul Hernandez
fb5e9e1d77
feat: Add PostgreSQL database backend support ( #439 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-11-20 11:20:29 -06:00
Paul Hernandez
c83d567917
fix: enable WAL mode and add Windows-specific SQLite optimizations ( #316 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Paul Hernandez <phernandez@users.noreply.github.com >
Co-authored-by: Claude <noreply@anthropic.com >
2025-10-03 21:10:09 -05:00
Paul Hernandez
473f70c949
chore: Cloud auth ( #213 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-07 21:08:25 -05:00
Drew Cain
7be001ca68
fix: fastmcp deprecation warning ( #150 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
Co-authored-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2025-06-19 19:59:17 -05:00
Paul Hernandez
84d2aaf641
fix: eliminate redundant database migration initialization ( #146 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-06-18 17:32:20 -05:00
bm-claudeai
020957cd76
feat: Multi-project support, OAuth authentication, and major improvements ( #119 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude <noreply@anthropic.com >
2025-05-25 10:07:34 -05:00
Paul Hernandez
00c8633cfc
feat: add watch to mcp process ( #83 )
2025-04-06 18:33:10 -05:00
Paul Hernandez
e6496df595
feat: Beta work ( #17 )
...
feat: Add multiple projects support
feat: enhanced read_note for when initial result is not found
fix: merge frontmatter when updating note
fix: handle directory removed on sync watch
2025-03-05 18:46:04 -06:00
phernandez
812136c8c2
fix: add logfire spans to cli
2025-02-18 19:08:46 -06:00
phernandez
3e8e3e8961
fix: add logfire instrumentation to tools
2025-02-18 18:52:09 -06:00
Paul Hernandez
39bd5ca08f
fix: Re do enhanced read note format ( #10 )
...
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-17 18:47:59 -06:00
phernandez
30cd74ec95
fix: more alembic fixes
2025-02-16 21:49:41 -06:00
phernandez
85e620c72b
rejigger alembic files
2025-02-16 21:13:29 -06:00
phernandez
41f5b1667b
format code
2025-02-15 14:38:19 -06:00
phernandez
ca632beb6f
fix: refactor db schema migrate handling
2025-02-15 14:36:12 -06:00
phernandez
674dd1fd47
fix: remove create schema from init_db
2025-02-15 12:36:08 -06:00
Paul Hernandez
c394d682e1
Alembic ( #6 )
...
* remove database service
* add alembic config for migrations
* fix type check and format
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-12 22:12:52 -06:00
Paul Hernandez
5b4f0eafcc
Pre release fixups ( #5 )
...
* configure logging
* set mcp output logging also
* fix type check errors
* fix type check
* rename Permalink schema type
* fix type errors
* add typechecks to ci workflow
* pytest coverage setup
* add tests for status cli
* sync tests coverage
* watch_service test coverage
* tests for tool_utils.py
* clean up imports
* file_utils coverage
* markdown plugins coverage
* 99% test coverage
* more test coverage, remove ObservationCategory
* more tool coverage
* fix type-check
* format, upgrade deps
---------
Co-authored-by: phernandez <phernandez@basicmachines.co >
2025-02-12 08:23:10 -06:00
phernandez
1fee436bf9
fix: recreate search index on db reset
2025-02-07 17:22:34 -06:00
phernandez
ffbd091ad3
add db check at startup
2025-02-07 16:03:31 -06:00
phernandez
2ef48bb34c
db_version_service
2025-02-06 21:22:48 -06:00
phernandez
566a796d68
fix sqlalchemy dep loading in deps.py
2024-12-30 14:08:21 -06:00
phernandez
bde381c9e2
use path based ids for documents api
2024-12-24 09:58:45 -06:00
phernandez
1c56b23f75
/documents and /knowledge working (again)
2024-12-23 20:48:22 -06:00
phernandez
e245ed3708
update main with changes
2024-12-19 19:10:29 -06:00
phernandez
176ebb3d55
add FKs to db connections
2024-12-16 16:01:08 -06:00
phernandez
6f7295c6d9
refactor session_maker lifecycle
2024-12-15 20:09:54 -06:00
phernandez
4e21811847
fix deps for fastapi
2024-12-14 13:47:51 -06:00
phernandez
18dd87966b
inital mcp impl
2024-12-08 11:56:04 -06:00
phernandez
fe24e09075
update db, models modules with docs
2024-12-02 20:27:18 -06:00