Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
864c620
Initial commit
sjrl May 11, 2026
378ad34
initial feedback and exploration of the memory store protocol
sjrl May 11, 2026
2bcdb4e
update readme
sjrl May 11, 2026
75d2418
try to make memory store protocol appropriate for multiple integrations
sjrl May 11, 2026
ec15f62
Make specific mem0 writer
sjrl May 11, 2026
37dc442
remove protocol from mem0 integration
sjrl May 11, 2026
fb726c7
refactoring of where the pre-made tools go
sjrl May 11, 2026
ed9e570
handle mypy
sjrl May 11, 2026
7a53df8
more refactoring of the tools
sjrl May 11, 2026
2f4d87c
removed delete functions for now
sjrl May 11, 2026
64dea2f
temporarily added a different way to define the tool
sjrl May 12, 2026
17c8f1d
Add github workflow for mem0
sjrl May 12, 2026
0222cf3
Some refactoring
sjrl May 15, 2026
5b1f282
Expose more options as init params
sjrl May 15, 2026
7b6d021
Add support for app_id as well
sjrl May 15, 2026
e9d433e
Move infer to a param of the tool function
sjrl May 15, 2026
482ab3c
slight refactor
sjrl May 15, 2026
55cdd55
small changes and added some TODOs
sjrl May 15, 2026
d2274f9
Refactoring tests
sjrl May 18, 2026
87415c9
Add another example using the components
sjrl May 18, 2026
1d2f80d
update docstrings
sjrl May 18, 2026
f454df5
Infer is no longer a MemoryStore attribute instead needs to be passed…
sjrl May 18, 2026
eee040a
make more args keyword only for the tools
sjrl May 18, 2026
d92581f
remove unnecessary project update
sjrl May 18, 2026
09f1567
Update docstrings
sjrl May 18, 2026
79fcb6e
Try to combine filters and ids in search_memories
sjrl May 18, 2026
ee20be6
Add more integration tests
sjrl May 18, 2026
ed4903e
use a more realistic return result from mem0
sjrl May 18, 2026
bdde25a
Drop include_memory_metadata and instead just add the meta info to Ch…
sjrl May 18, 2026
6c34408
remove redundant tests
sjrl May 18, 2026
56a6e1e
more test simplification
sjrl May 18, 2026
3c8f527
test refactoring
sjrl May 18, 2026
0569a78
more test refactoring
sjrl May 18, 2026
3d760c9
update readme
sjrl May 19, 2026
94a2c02
refactor tests
sjrl May 19, 2026
a75f28b
update example using components to be better
sjrl May 19, 2026
35eb878
Update example
sjrl May 19, 2026
5291906
made example more robust
sjrl May 19, 2026
9c624d7
Update examples
sjrl May 19, 2026
cb923c0
update retriever tool to allow no query to be passed
sjrl May 19, 2026
55df429
update example
sjrl May 19, 2026
eb3861d
Better filter support
sjrl May 19, 2026
7b15864
Merge branch 'main' of github.com:deepset-ai/haystack-core-integratio…
sjrl May 19, 2026
44f52bb
updates to filters
sjrl May 19, 2026
a8b99c1
remove todos
sjrl May 19, 2026
005613c
update min version of Haystack
sjrl May 19, 2026
4a0dda9
fix linting
sjrl May 19, 2026
5104b4e
try changing notify action
anakin87 May 19, 2026
4aa62ec
Update integrations/mem0/src/haystack_integrations/components/retriev…
sjrl May 20, 2026
cf52ea5
PR comments
sjrl May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,11 @@ integration:mcp:
- any-glob-to-any-file: "integrations/mcp/**/*"
- any-glob-to-any-file: ".github/workflows/mcp.yml"

integration:mem0:
- changed-files:
- any-glob-to-any-file: "integrations/mem0/**/*"
- any-glob-to-any-file: ".github/workflows/mem0.yml"

integration:meta-llama:
- changed-files:
- any-glob-to-any-file: "integrations/meta_llama/**/*"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/CI_coverage_comment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ on:
- "Test / llama_stack"
- "Test / markitdown"
- "Test / mcp"
- "Test / mem0"
- "Test / meta_llama"
- "Test / mistral"
- "Test / mongodb_atlas"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CI_license_compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,6 @@ jobs:

- name: Notify Slack on nightly failure
if: failure() && github.event_name == 'schedule'
uses: deepset-ai/notify-slack-action@3cda73b77a148f16f703274198e7771340cf862b # v1
uses: deepset-ai/notify-slack-action@a65def0c8bf91d6520286ab34280151c76a5a008 # v1.1.0
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL_NOTIFICATIONS }}
139 changes: 139 additions & 0 deletions .github/workflows/mem0.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# This workflow comes from https://github.com/ofek/hatch-mypyc
# https://github.com/ofek/hatch-mypyc/blob/5a198c0ba8660494d02716cfc9d79ce4adfb1442/.github/workflows/test.yml
name: Test / mem0

on:
schedule:
- cron: "0 0 * * *"
pull_request:
paths:
- "integrations/mem0/**"
- "!integrations/mem0/*.md"
- ".github/workflows/mem0.yml"
push:
branches:
- main
paths:
- "integrations/mem0/**"
- "!integrations/mem0/*.md"
- ".github/workflows/mem0.yml"

defaults:
run:
working-directory: integrations/mem0

concurrency:
group: mem0-${{ github.head_ref || github.sha }}
cancel-in-progress: true

env:
PYTHONUNBUFFERED: "1"
FORCE_COLOR: "1"
TEST_MATRIX_OS: '["ubuntu-latest", "windows-latest", "macos-latest"]'
TEST_MATRIX_PYTHON: '["3.10", "3.14"]'

jobs:
compute-test-matrix:
runs-on: ubuntu-slim
defaults:
run:
working-directory: .
outputs:
os: ${{ steps.set.outputs.os }}
python-version: ${{ steps.set.outputs.python-version }}
steps:
- id: set
run: |
echo 'os=${{ github.event_name == 'push' && '["ubuntu-latest"]' || env.TEST_MATRIX_OS }}' >> "$GITHUB_OUTPUT"
echo 'python-version=${{ github.event_name == 'push' && '["3.10"]' || env.TEST_MATRIX_PYTHON }}' >> "$GITHUB_OUTPUT"

run:
name: Python ${{ matrix.python-version }} on ${{ startsWith(matrix.os, 'macos-') && 'macOS' || startsWith(matrix.os, 'windows-') && 'Windows' || 'Linux' }}
needs: compute-test-matrix
permissions:
contents: write
pull-requests: write
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ${{ fromJSON(needs.compute-test-matrix.outputs.os) }}
python-version: ${{ fromJSON(needs.compute-test-matrix.outputs.python-version) }}

steps:
- name: Support longpaths
if: matrix.os == 'windows-latest'
working-directory: .
run: git config --system core.longpaths true

- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}

- name: Install Hatch
run: pip install --upgrade hatch
- name: Lint
if: matrix.python-version == '3.10' && runner.os == 'Linux'
run: hatch run fmt-check && hatch run test:types

- name: Run unit tests
run: hatch run test:unit-cov-retry

# On PR: posts coverage comment (directly on same-repo PRs; via artifact for fork PRs). On push to main: stores coverage baseline on data branch.
- name: Store unit tests coverage
id: coverage_comment
if: matrix.python-version == '3.10' && runner.os == 'Linux' && github.event_name != 'schedule'
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683 # v3.40
with:
GITHUB_TOKEN: ${{ github.token }}
COVERAGE_PATH: integrations/mem0
SUBPROJECT_ID: mem0
MINIMUM_GREEN: 90
MINIMUM_ORANGE: 60

- name: Upload coverage comment to be posted
if: matrix.python-version == '3.10' && runner.os == 'Linux' && github.event_name == 'pull_request' && steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: coverage-comment-mem0
path: python-coverage-comment-action-mem0.txt

- name: Run integration tests
run: hatch run test:integration-cov-append-retry

- name: Store combined coverage
if: github.event_name == 'push'
uses: py-cov-action/python-coverage-comment-action@7188638f871f721a365d644f505d1ff3df20d683 # v3.40
with:
GITHUB_TOKEN: ${{ github.token }}
COVERAGE_PATH: integrations/mem0
SUBPROJECT_ID: mem0-combined
MINIMUM_GREEN: 90
MINIMUM_ORANGE: 60

- name: Run unit tests with lowest direct dependencies
if: github.event_name != 'push'
run: |
hatch run uv pip compile pyproject.toml --resolution lowest-direct --output-file requirements_lowest_direct.txt
hatch -e test env run -- uv pip install -r requirements_lowest_direct.txt
hatch run test:unit

- name: Nightly - run unit tests with Haystack main branch
if: github.event_name == 'schedule'
run: |
hatch env prune
hatch -e test env run -- uv pip install git+https://github.com/deepset-ai/haystack.git@main
hatch run test:unit


notify-slack-on-failure:
needs: run
if: failure() && github.event_name == 'schedule'
runs-on: ubuntu-slim
steps:
- uses: deepset-ai/notify-slack-action@3cda73b77a148f16f703274198e7771340cf862b # v1
with:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL_NOTIFICATIONS }}
Loading
Loading