Paul Hernandez
4fe6fe09c8
feat(core): add observation category filter to search ( #908 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 19:57:19 -05:00
Paul Hernandez
5b034f081d
fix(core): self-heal corrupt FastEmbed model cache ( #900 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:30 -05:00
Paul Hernandez
3ba3a9504d
fix(mcp): stop move_note reporting false success across boundaries ( #904 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-07 17:37:20 -05:00
Adit Karode
476239d878
feat(cli): add delete-note tool command
2026-06-06 21:41:46 -05:00
DoubleDeeRuffy
20bb19f4cd
fix(mcp): resolve write-note overwrite conflicts
2026-06-06 21:41:36 -05:00
Drew Cain
f07643d3a8
feat(cli): expose project sync support metadata
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-28 15:00:05 -05:00
Drew Cain
b109b7337f
fix(mcp): attach local state to one workspace project row ( #854 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 10:54:44 -05:00
Drew Cain
36b51b676e
fix(mcp): return workspace-qualified write permalinks ( #853 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 00:33:21 -05:00
Paul Hernandez
5a34a420c9
fix(mcp): preinitialize local ASGI database ( #838 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-25 15:57:00 -05:00
Sean Campbell
94c04ee456
fix(mcp): restore write_note overwrite schema for external clients ( #818 ) ( #841 )
...
Signed-off-by: rudi193-cmd <rudi193@gmail.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-23 14:19:43 -05:00
Drew Cain
5ae8a733ea
fix(mcp): route mixed local/cloud projects correctly ( #837 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-23 11:31:13 -05:00
Paul Hernandez
9e3fe26a83
fix(core): purge SQLite search_index on project delete ( #832 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-16 16:47:24 -05:00
Paul Hernandez
47ee982041
perf(cli): defer local ASGI app import ( #828 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 17:59:58 -05:00
Paul Hernandez
3bed6d8890
chore(deps): update deps and harden security ( #825 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 10:45:14 -05:00
Paul Hernandez
4cba7ba01c
fix(core): parse prose wikilinks as inline links ( #824 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-14 11:43:11 -05:00
Drew Cain
8eeec64e28
fix: basic-memory project list does not list projects from all workspaces ( #822 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-14 09:46:02 -05:00
Paul Hernandez
c6fa185bf3
fix(mcp): route edit_note workspace-qualified permalinks ( #813 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 12:56:26 -05:00
Paul Hernandez
415c2b3d6e
feat(cli): add orphan entity command ( #816 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 12:13:14 -05:00
Paul Hernandez
df5e8d805f
fix(mcp): centralize workspace permalink routing ( #808 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 16:44:57 -05:00
Paul Hernandez
831dc1ecdc
fix(mcp): make multi-project search opt-in ( #807 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 12:54:20 -05:00
Paul Hernandez
7918e5c6bf
fix(mcp): preserve workspace paths in build_context ( #801 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 09:53:54 -05:00
Paul Hernandez
f312341020
fix(mcp): add workspace routing to delete_project ( #803 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 09:48:51 -05:00
phernandez
177ae21ba7
pass context to recent_activity
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-07 18:50:02 -05:00
Paul Hernandez
a661e924df
feat(mcp): create projects by workspace slug ( #789 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-03 19:31:55 -05:00
Paul Hernandez
05adda1502
fix(mcp): route workspace-qualified memory urls ( #790 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-03 18:18:10 -05:00
Drew Cain
0a72d81bb3
fix(mcp): cap recent_activity rows with explicit truncation footer ( #785 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-03 17:43:42 -05:00
Paul Hernandez
b4bf14ebf7
fix(mcp): list factory projects across workspaces ( #778 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-02 09:17:25 -05:00
Paul Hernandez
0b335476d6
fix(mcp): resolve projects by external_id, remove workspace from MCP tools ( #777 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-05-01 05:15:44 -05:00
Paul Hernandez
799dd6c629
fix(mcp): remove no-op pagination params from read_note and view_note ( #768 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-28 23:05:14 -05:00
Paul Hernandez
ee1558ea68
feat(mcp): accept training-data-friendly parameter aliases ( #766 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-28 20:10:36 -05:00
Paul Hernandez
f3e46d7984
feat(mcp): discover projects across workspaces ( #757 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-18 14:04:57 -05:00
jope-bm
56d6f1b4a5
fix(mcp): report cloud projects as source=cloud in factory mode ( #752 )
...
Signed-off-by: Joe P <joe@basicmemory.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-18 11:10:20 -06:00
Paul Hernandez
1b39062ecd
refactor(core): rip telemetry wrappers, use logfire directly ( #754 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-17 13:58:19 -05:00
Paul Hernandez
4e53bb83fd
refactor(core): simplify note write flow ( #739 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-15 17:56:27 -05:00
Paul Hernandez
052545b661
chore(core): make ty the default typechecker ( #736 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-13 10:34:01 -05:00
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
Paul Hernandez
fe04a0b2a2
fix(mcp): pass workspace parameter through client factory ( #722 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-06 16:57:37 -05:00
Paul Hernandez
e6b98a15c7
fix(cli): propagate cloud workspace routing and incremental sync ( #712 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-04-03 14:25:02 -05:00
phernandez
7696fca826
fix: restore MCP telemetry compatibility and outcomes
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-28 15:31:13 -05:00
phernandez
98a2a3cbaf
Unify MCP telemetry spans across routers and services
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-28 14:42:18 -05:00
phernandez
a4e0422926
perf fixes
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-27 22:12:44 -05:00
Paul Hernandez
4791e19685
feat: add Logfire phased instrumentation ( #692 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-24 20:39:42 -05:00
Paul Hernandez
36848410a1
feat(core): add default_search_type config setting ( #676 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 22:19:53 -05:00
Paul Hernandez
1a6a65571e
fix(mcp): add project detection from memory:// URLs in edit_note and delete_note ( #668 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 19:14:22 -05:00
Paul Hernandez
a5c9e77f16
fix: coerce string params to list/dict in MCP tools ( #657 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 22:19:07 -05:00
Paul Hernandez
9809b469c6
fix: enforce strict entity resolution in destructive MCP tools ( #650 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-08 15:56:07 -05:00
Paul Hernandez
ad3f2650d9
feat: add insert_before_section and insert_after_section edit operations ( #648 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-08 10:54:10 -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
63e4bcdf1d
fix: clarify search_notes parameter naming and fix note_types case sensitivity
...
- Add Annotated descriptions to note_types and entity_types parameters so
LLMs can distinguish frontmatter type filtering from knowledge graph item
type filtering (search.py, ui_sdk.py)
- Lowercase note_types values at filter time so "Chapter" matches stored
"chapter"
- Fix misleading entity_types references in schema.py guidance strings
(should be note_types)
- Add permalink pattern documentation note about full path matching
- Add test for note_types case-insensitive lowercasing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-05 15:08:52 -06:00
phernandez
1fdc9fdc69
fix: resolve_project_parameter falls back to projects API for default ( #644 )
...
In cloud mode, ConfigManager has no local config so default_project
is always None. Add API fallback in resolve_project_parameter that
queries /v2/projects/ for the default_project field. This fixes all
MCP tools that rely on project resolution (recent_activity, etc).
Removed discovery mode tests that simulated an invalid state by
clearing is_default — there must always be a default project.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
Signed-off-by: phernandez <paul@basicmachines.co >
2026-03-04 13:17:16 -06:00