Skip to content

chore: release 0.0.5#11

Merged
nkanu17 merged 8 commits into
mainfrom
chore/release-0.0.5
May 20, 2026
Merged

chore: release 0.0.5#11
nkanu17 merged 8 commits into
mainfrom
chore/release-0.0.5

Conversation

@nkanu17
Copy link
Copy Markdown
Collaborator

@nkanu17 nkanu17 commented May 19, 2026

Summary

Release prep for 0.0.5.

  • Bump version in pyproject.toml from 0.0.4 to 0.0.5.
  • Roll 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).
  • 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. Removed from the index only; files remain on disk locally.

Test plan

  • uv sync picks up the new version cleanly.
  • Full pytest suite green (124 tests, REDIS_URL=redis://localhost:6399 against redis:8.4).
  • After merge: tag v0.0.5 and let the publish workflow push to PyPI.

- 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.
Copilot AI review requested due to automatic review settings May 19, 2026 23:59
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 version from 0.0.4 to 0.0.5 in pyproject.toml.
  • Add [0.0.5] - 2026-05-19 section header to CHANGELOG.md.
  • Delete unreferenced blog post drafts (blog_post.md, blog_post_0.md, and blog_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.

nkanu17 added 2 commits May 19, 2026 20:18
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.
Copilot AI review requested due to automatic review settings May 20, 2026 00:33
nkanu17 added 2 commits May 19, 2026 20:34
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.
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 11 out of 12 changed files in this pull request and generated 5 comments.

Comment thread README.md
Comment thread examples/redisvl_mcp_search/README.md Outdated
Comment thread examples/redisvl_mcp_search/load_data.py Outdated
Comment thread examples/redisvl_mcp_search/redisvl_mcp_search_agent/agent.py Outdated
Comment thread examples/redisvl_mcp_search/schema.yaml Outdated
nkanu17 added 2 commits May 19, 2026 20:37
- 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.
Copilot AI review requested due to automatic review settings May 20, 2026 02:32
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 23 changed files in this pull request and generated 3 comments.

Comment thread tests/integration/test_adk_agent_registration.py Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
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.
@nkanu17 nkanu17 merged commit d97fdc3 into main May 20, 2026
3 checks passed
@nkanu17 nkanu17 deleted the chore/release-0.0.5 branch May 20, 2026 02:54
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