chore: release 0.0.5#11
Merged
Merged
Conversation
- Bump version 0.0.4 -> 0.0.5 in pyproject.toml. - Roll CHANGELOG: cut a 0.0.5 release section covering the redisvl 0.18.2 integration (PR #10): epsilon removal, llmcache import migration, new RedisSQLSearchTool, new create_redisvl_mcp_toolset helper, new integration test suite, two runnable examples. - Stop tracking three stale blog-post draft files (blog_post.docx / blog_post.md / blog_post_0.md); they were committed earlier but never referenced from the repo. Files remain on disk locally; only removed from the git index.
There was a problem hiding this comment.
Pull request overview
Release prep for version 0.0.5: bumps the package version, adds a new changelog section covering the work from PR #10, and removes three stale blog post draft files that were never referenced from the repo.
Changes:
- Bump
versionfrom0.0.4to0.0.5inpyproject.toml. - Add
[0.0.5] - 2026-05-19section header toCHANGELOG.md. - Delete unreferenced blog post drafts (
blog_post.md,blog_post_0.md, andblog_post.docx).
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| pyproject.toml | Version bump to 0.0.5. |
| CHANGELOG.md | New release section header for 0.0.5. |
| blog_post.md | Removed stale draft. |
| blog_post_0.md | Removed stale draft. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
README:
- Restructure the Search Tools section. Open with a two-row decision
matrix ("In-process" vs "MCP toolset"), then keep the in-process
table, then describe the MCP toolset path in the same section.
Calls out that range and SQL have no MCP equivalent today.
- Update the top-of-README 3-column feature card so the Search Tools
sub-card mentions both in-process and `rvl mcp` paths, and the MCP
Toolsets sub-card lists AMS memory + RedisVL search side by side.
examples/redisvl_mcp_search/:
- Rewrite as the MCP-path mirror of `redis_search_tools/`. Same
knowledge-base corpus, same kinds of prompts, embedded via
`redis/langcache-embed-v2`.
- schema.yaml: add a 768-dim vector field with HNSW + cosine.
- load_data.py: embed each doc and load with stable keys so re-running
is idempotent.
- mcp_config.yaml: switch from fulltext to `search.type: hybrid` with
a vectorizer block and LINEAR fusion (50/50 text/vector). Disable
nltk stopwords so the server runs without that optional dep.
- agent.py: refresh instruction to describe hybrid behavior.
- README.md: side-by-side comparison table vs `redis_search_tools/`,
and a "see also" footer pointing at the in-process and SQL examples.
Verification:
- `rvl mcp` server started against the new corpus and responded
correctly to three prompts (`What is Redis?`, `Tell me about HNSW`,
`FT.HYBRID command`); top hits were the expected articles ranked by
hybrid_score. End-to-end ADK Runner smoke deferred (Gemini free-tier
daily quota was exhausted during testing); the no-LLM probe via
`McpToolset.run_async` proves the agent->MCP->Redis pipeline is
wired correctly.
- make check clean. 124 tests pass.
Consolidates a fragmented 623-line README into a focused 385-line
walkthrough (-38%). Same scope of content, less duplication, accurate
references throughout.
Structural changes:
- Replace the 3-column emoji feature card with a single flat
"Surface" table that lists every shipping component (sessions,
long-term memory, memory tools, AMS MCP, search tools, RedisVL MCP,
cache providers) in one row each.
- Collapse the three competing onboarding ramps ("Getting Started",
"Quick Start", "Features Overview") into one Quick Start with
Prerequisites + four representative snippets (sessions+memory,
in-process search, MCP search, semantic cache).
- Consolidate three overlapping memory tables ("Memory Integration
Approaches", "MCP Integration", "Travel Agent Examples Comparison")
into one "Memory backends" matrix.
- Drop the long "Customizing Tool Prompts" block; keep one line in
the Quick Start search snippet and the search-tools section.
Correctness fixes:
- Replace three stale doc paths (`docs/redis-setup.md`,
`docs/agent-memory-server-setup.md`, `docs/integration-guide.md`)
that were broken by the mkdocs migration with the current
`docs/user_guide/...` paths.
- Update code samples to repo-canonical model and vectorizer:
`gemini-2.5-flash` and `redis/langcache-embed-v2`.
- Update Requirements: ADK is now "1.0+ (tested through 2.0 GA)";
AMS Docker example uses gemini-2.5-flash.
- Semantic cache snippet uses the public
`create_llm_cache_callbacks` helper (was a placeholder comment).
- Add `redis_sql_search` and `redisvl_mcp_search` rows to the
Examples table.
- Rename Development "Quick Start" -> "Setup" to remove the
duplicate header.
make check clean. 124 tests pass.
The Surface table's MCP rows said "Same memory tools surfaced over MCP/SSE" and "One Redis index served to many agents over stdio / sse / streamable-http" — both describe deployment shape rather than what the server exposes. Replace with the actual tool names and capabilities: - AMS MCP row: lists the seven AMS tools (search/create/edit/delete/get long-term memory, memory_prompt, set_working_memory). - RedisVL MCP row: lists the two tools (search-records, upsert-records), the search modes (vector / fulltext / hybrid), the schema-aware filter and return-field hints, the three transports, bearer auth, and the read-only flag.
Move the RedisVL MCP toolset row above the in-process search tools so the two MCP rows (AMS memory MCP, RedisVL search MCP) sit together. Reads more naturally and makes the MCP option visible before the in-process search alternative.
- Rename "RedisVL MCP toolset" -> "RedisVL MCP" in the surface row. - Expand the "What you get" cell into bullets covering tools exposed, the three search modes (vector / fulltext / hybrid), server-side embedding, schema-aware descriptions, JSON filter language, transports, and bearer auth. - Rename "Search tools" -> "Search tools with REST" for parallelism with the MCP rows.
Per adk-docs PR #1777 review feedback (koverholt): every catalog MCP
integration page wires `McpToolset` natively rather than through a
third-party wrapper. The `create_redisvl_mcp_toolset(...)` helper saved
about five lines of boilerplate (transport switch, bearer-header
construction, --read-only default, tool-name constants), but it tells
a different story than the rest of the catalog and the maintainer
prefers the native pattern.
Since 0.0.5 hasn't shipped to PyPI yet, removing the helper now is
not a breaking change.
Removed:
- src/adk_redis/tools/mcp_search.py (170 LOC).
- tests/tools/test_mcp_search.py (16 unit tests).
- `adk-redis[mcp-search]` extra from pyproject.toml; updated `all`.
- Re-exports of create_redisvl_mcp_toolset, ALL_REDISVL_MCP_TOOLS,
REDISVL_MCP_TOOL_SEARCH, REDISVL_MCP_TOOL_UPSERT from
`adk_redis` and `adk_redis.tools`.
Rewritten to native McpToolset:
- examples/redisvl_mcp_search/redisvl_mcp_search_agent/agent.py now
builds `McpToolset(connection_params=...)` directly, picking
StdioConnectionParams (default) or StreamableHTTPConnectionParams
based on env vars. Verified end-to-end: rvl mcp server returns
correct hybrid-search hits ("Hybrid Search with FT.HYBRID" at
score 1.31 for "FT.HYBRID command").
- tests/integration/test_adk_agent_registration.py now constructs
McpToolset directly for both stdio and streamable-http registration
smokes.
Docs updated to remove every mention of the helper and to recommend
native ADK MCP wiring:
- README.md: Surface table row, Quick Start MCP snippet, Search Tools
section, install extras, Requirements.
- SKILL.md: When-to-use, install snippet, Core Pattern #4 (RedisVL
MCP), Common Gotchas, Agent Execution Policy.
- docs/concepts/search.md.
- docs/user_guide/how_to_guides/search_tools.md: full rewrite of the
MCP section + decision matrix.
- docs/for-ais-only/REPOSITORY_MAP.md: drop mcp_search.py + tests.
- docs/for-ais-only/FAILURE_MODES.md: replace "two MCP helpers"
note with "one MCP helper, not two" explaining the design choice.
- docs/llms.txt: replace "Prefer create_redisvl_mcp_toolset..." with
"Use ADK's native McpToolset for RedisVL MCP".
- examples/redisvl_mcp_search/README.md: rewrite to describe the
native pattern.
- CHANGELOG.md: walk back the "Added" entry; replace with the
runnable example using the standard ADK pattern.
Verified:
- make check clean (format, lint, mypy).
- 108 pytest pass (down from 124; 16 fewer for the deleted helper
tests).
- rvl mcp end-to-end: example agent's `_build_toolset()` connects,
runs `search-records` with hybrid mode, returns expected results.
CI failure on Python 3.11 was caused by my module-level imports in
tests/integration/test_adk_agent_registration.py:
from google.adk.tools.mcp_tool import McpToolset
google-adk's `mcp_tool/__init__.py` wraps every MCP symbol in a single
try/except that silently swallows ImportError. On installs where any
nested import fails (e.g., the `mcp` package isn't fully wired on a
specific Python version), the module ends up empty and pytest fails
to collect the test file.
Fix: move the MCP imports into a try/except in the test module and
gate the `TestRedisVLMcpToolsetRegistersWithAgent` class with
`@pytest.mark.skipif(not _MCP_AVAILABLE, ...)`. Search-tool tests in
the same file stay un-gated; they don't depend on MCP.
PR review (Copilot) drive-by fixes also addressed in the same commit:
- README.md: `host.docker.internal` quick-start note now flags that
Linux needs `--network=host` or the Docker-bridge gateway IP.
- README.md: Helpful links list em dashes replaced with colons
(project style forbids em dashes in prose).
- examples/redisvl_mcp_search/{README,load_data,agent,schema}: soften
the "same knowledge-base corpus" language to "counterpart" /
"overlapping with MCP-specific docs added", since the MCP loader
curates the corpus differently from redis_search_tools/.
Verified locally with the exact CI command:
uv run pytest tests -v --cov=adk_redis --cov-report=xml
108 tests pass, coverage.xml emitted, make check clean.
This was referenced May 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release prep for 0.0.5.
versioninpyproject.tomlfrom0.0.4to0.0.5.CHANGELOG.md: cut a[0.0.5]release section covering everything that landed in feat(redisvl): integrate 0.18.2, add SQL + MCP toolset, ship mkdocs site #10 (redisvl 0.18.2 integration,RedisSQLSearchTool,create_redisvl_mcp_toolset, llmcache import migration, epsilon removal, new examples + integration test suite).blog_post.docx,blog_post.md,blog_post_0.md). They were committed earlier but never referenced from the repo. Removed from the index only; files remain on disk locally.Test plan
uv syncpicks up the new version cleanly.v0.0.5and let the publish workflow push to PyPI.