Skip to content

feat: restore filtered fulltext memory search - #232

Merged
aptend merged 1 commit into
matrixorigin:mainfrom
loveRhythm1990:agent/recover-fulltext-search
Aug 14, 2026
Merged

feat: restore filtered fulltext memory search#232
aptend merged 1 commit into
matrixorigin:mainfrom
loveRhythm1990:agent/recover-fulltext-search

Conversation

@loveRhythm1990

Copy link
Copy Markdown
Collaborator

What type of PR is this?

  • feat (new feature)
  • fix (bug fix)
  • docs (documentation)
  • style (formatting, no code change)
  • refactor (code change that neither fixes a bug nor adds a feature)
  • perf (performance improvement)
  • test (adding or updating tests)
  • chore (maintenance, tooling)
  • build / ci (build or CI changes)

Which issue(s) this PR fixes

Refs #229 and restores the changes from #230.

What this PR does / why we need it

PR #230 was squash-merged as e46ba76, but PR #228 was merged six minutes later from the same parent commit. The second squash commit replaced the first one on main, so the full-text search implementation disappeared even though #230 remains marked as merged.

This PR reapplies #230 on top of the current main, which already contains #228, and resolves the shared-file overlap without duplicating the Python Memory.subject_id or Memory.extra_metadata fields.

  • Restores POST /v1/memories/fulltext-search backed by MatrixOne full-text search.
  • Restores exact metadata and fixed-field SQL pre-filters, deterministic score ordering, strict session filtering, and branch isolation.
  • Restores sync and async Python SDK memories.fulltext_search() support.
  • Keeps the structured POST /v1/memories/query API from feat: add structured memory queries #228 intact.
  • Keeps full-text search out of MCP as originally intended.
  • Restores the API reference, changelogs, SDK documentation, and regression coverage.

Validation:

  • cargo check --manifest-path memoria/Cargo.toml -p memoria-storage -p memoria-service -p memoria-api
  • cargo clippy --manifest-path memoria/Cargo.toml -p memoria-storage -p memoria-service -p memoria-api --lib -- -D warnings
  • cargo test --manifest-path memoria/Cargo.toml -p memoria-storage metadata_and_fulltext_validation_are_enforced_at_storage_boundary
  • cargo test --manifest-path memoria/Cargo.toml -p memoria-api --lib fulltext_memory_type_parser_rejects_blank_entries_but_allows_empty_arrays
  • cargo test --manifest-path memoria/Cargo.toml -p memoria-api --test api_e2e test_api_fulltext -- --nocapture (3 passed)
  • uv run --project sdk/python pytest sdk/python/tests/unit/test_memories.py sdk/python/tests/unit/test_memories_async.py -q (89 passed)
  • uv run --project sdk/python ruff check sdk/python/src/memoria/resources/memories.py sdk/python/tests/unit/test_memories.py sdk/python/tests/unit/test_memories_async.py
  • git diff --check

@loveRhythm1990
loveRhythm1990 marked this pull request as ready for review August 14, 2026 09:32
@aptend
aptend merged commit efd3d65 into matrixorigin:main Aug 14, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants