phernandez
cb0158c9ea
test(mcp): cover write-note overwrite conflict integration
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-06-06 19:36:59 -05:00
Dennis Hempel
4fd9cae293
fix(mcp): resolve write_note overwrite conflicts by file_path strictly
...
`write_note(overwrite=True)` caught the 409 from create_entity and then
called `knowledge_client.resolve_entity(entity.permalink)` with the
default `strict=False`. In workspace-prefixed palaces the client-built
permalink omits the workspace slug, so exact permalink lookup misses
and the fuzzy fallback could pick an orphan row that shares tokens with
the canonical permalink. The update then wrote to the orphan, leaving
the canonical row stale. On the next overwrite the permalink uniqueness
check in `_resolve_schema_permalink` found duplicate rows and minted
`-1`/`-2` suffixes on the canonical entity, accumulating orphans on
every re-synthesis run.
The 409 came from a `file_service.exists(file_path)` check in
`prepare_create_entity_content`, so the file_path is the authoritative
key for the canonical row — no fuzzy matching needed. Resolve by
file_path with `strict=True`, POSIX-normalized so Windows clients send
the form the server stores.
Adds a regression test that spies on `resolve_entity` and asserts the
identifier and `strict` flag, plus checks that no `-1`/`-2` suffix is
minted under the canonical permalink.
Reported in basic-memory-bug-report Issue 1.
Signed-off-by: Dennis Hempel <uhg.dennnis@gmail.com >
2026-05-28 09:26:38 +02:00
Drew Cain
ff5d872a8c
chore: update version to 0.21.5 for v0.21.5 release
v0.21.5
2026-05-26 10:58:09 -05:00
Drew Cain
96ee4eafd2
docs: add v0.21.5 changelog entry
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 10:57:55 -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
Drew Cain
9af320187c
fix(core): load sqlite-vec before vector table cleanup ( #852 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
2026-05-26 00:27:47 -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
Drew Cain
a7e2368f9e
chore: update version to 0.21.4 for v0.21.4 release
v0.21.4
2026-05-23 14:55:49 -05:00
Sean Campbell
c755127317
fix(cli): ignore CancelledError in background task done callback ( #839 ) ( #842 )
...
Signed-off-by: rudi193-cmd <rudi193@gmail.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-23 14:27:59 -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
d4ed02ba74
docs(core): move release process from CONTRIBUTING.md to AGENTS.md ( #846 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-23 14:00:01 -05:00
Drew Cain
40ed7129c8
chore: update version to 0.21.3 for v0.21.3 release
v0.21.3
2026-05-23 13:46:48 -05:00
Drew Cain
c4ef7abff5
test(core): isolate XDG_CONFIG_HOME so host env can't leak into tests ( #845 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-23 13:34:41 -05:00
Paul Hernandez
c75f45f3cf
Update README.md
...
update cloud description to remove link to private cloud repo
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2026-05-23 12:22:18 -05:00
Drew Cain
5ae8a733ea
fix(mcp): route mixed local/cloud projects correctly ( #837 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
v0.21.2
2026-05-23 11:31:13 -05:00
Rafael Madriz
b94ef01f82
feat(core): add XDG_CONFIG_HOME support ( #844 )
...
Signed-off-by: Rafael Madriz <rafa@rafaelmadriz.com >
2026-05-22 15:18:06 -05:00
Sean Campbell
12af7930de
docs(installer): use pgvector image for Postgres compose ( #840 )
...
Signed-off-by: rudi193-cmd <rudi193@gmail.com >
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Drew Cain <groksrc@gmail.com >
2026-05-22 08:54:18 -05:00
phernandez
60ec6728de
chore: update version to 0.21.1 for v0.21.1 release
v0.21.1
2026-05-16 18:56:38 -05:00
phernandez
a84e77f4af
docs: add v0.21.1 changelog entry
...
CI-only point release to validate #833 's inline Homebrew bump end-to-end
on a real tag push.
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-16 18:56:30 -05:00
Paul Hernandez
6910620968
ci(installer): inline Homebrew formula bump ( #833 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-16 18:55:25 -05:00
phernandez
214a54d740
chore: update version to 0.21.0 for v0.21.0 release
v0.21.0
2026-05-16 17:15:53 -05:00
phernandez
5a90c7cedf
docs: add v0.21.0 changelog entry
...
Promotes the Unreleased breaking-change note and adds the full v0.21.0
section covering ~80 commits since v0.20.3: workspace-routing fixes
across MCP/CLI/API, recent_activity ordering and search opt-in changes,
sync hardening, sqlite-vec graceful degrade, perf wins on CLI startup
and sync, and the project-delete cleanup landed in #832 .
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-16 17:15:43 -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
4d22c398c6
fix(sync): preserve bmignore rclone filters ( #827 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 17:48:49 -05:00
phernandez
8ac2d975f9
update README.md
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 17:13:34 -05:00
Paul Hernandez
34830bfad7
Update README.md
...
update agent matrix
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2026-05-15 14:55:00 -05:00
Paul Hernandez
f5e0c42047
Update README.md
...
remove sync commands from cli examples
Signed-off-by: Paul Hernandez <60959+phernandez@users.noreply.github.com >
2026-05-15 14:52:27 -05:00
phernandez
3f98da8c67
update README.md
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 14:50:35 -05:00
phernandez
14ff77d1c2
update to fastmcp 3.3.1
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 12:28:03 -05:00
phernandez
4e4da6128d
ci: run github actions on node 24
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-15 12:14:06 -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
4aa0cbdd62
fix(sync): ignore hidden paths relative to watched project ( #815 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 11:14:03 -05:00
Paul Hernandez
55f314237d
fix(sync): avoid shell for scan subprocesses ( #814 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-11 09:20:11 -05:00
Drew Cain
9862ef5411
fix(core): use updated_at for recent_activity filter and ordering ( #812 )
...
Signed-off-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-05-11 09:14:06 -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
26381aeed1
fix(mcp): use lightweight graph hydration lookup ( #806 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-08 10:07:29 -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
e871298e95
Merge branch 'main' of github.com:basicmachines-co/basic-memory
2026-05-07 18:50:10 -05:00
phernandez
177ae21ba7
pass context to recent_activity
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-07 18:50:02 -05:00
Drew Cain
3415fd1014
fix(core): parse picoschema modifier descriptions ( #796 )
...
Signed-off-by: Drew Cain <groksrc@gmail.com >
Signed-off-by: phernandez <paul@basicmachines.co >
Co-authored-by: phernandez <paul@basicmachines.co >
2026-05-06 12:21:35 -05:00
Paul Hernandez
b08659e228
fix(api): accept qualified project resolver hints ( #795 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-06 10:33:11 -05:00
Paul Hernandez
09a4b09436
feat(api): include search result totals ( #791 )
...
Signed-off-by: phernandez <paul@basicmachines.co >
2026-05-04 14:57:04 -05:00