Skip to content

test: E2E MemoryHub test should discover URL from discovery endpoint #242

Description

@rdwj

Summary

The MemoryHub E2E test (apps/adk-server/tests/e2e/examples/agent-integration/memoryhub/test_memoryhub_recall.py) currently uses the MEMORYHUB_E2E_URL repo secret, which must be manually updated when the sandbox cluster rotates. MemoryHub now publishes the current MCP URL at a stable discovery endpoint:

https://redhat-ai-americas.github.io/memory-hub/discovery.json

The E2E test should read this endpoint at startup to resolve the URL, falling back to MEMORYHUB_E2E_URL if the fetch fails (so the test still works in environments without internet access or with a custom instance).

Discovery file format

{
  "instances": {
    "sandbox": {
      "mcp_url": "https://..../mcp/",
      "environment": "sandbox",
      "updated": "2026-05-12",
      "status": "active"
    }
  },
  "default": "sandbox",
  "schema_version": 1
}

The test should read .instances[.default].mcp_url from the response.

Suggested change

In the test fixture that resolves the MemoryHub URL:

  1. Try fetching the discovery endpoint (with a short timeout, e.g. 5s)
  2. Parse .instances[.default].mcp_url
  3. Fall back to os.environ.get("MEMORYHUB_E2E_URL") if fetch fails or the endpoint is unreachable

This way the test self-heals after cluster rotations without waiting for someone to update the repo secret.

References

  • Decision record: redhat-ai-americas/memory-hub planning/kagenti-adk-e2e-cluster-url-stability.md
  • Discovery implementation: redhat-ai-americas/memory-hub PR (incoming)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Test.

Projects

Status
In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions