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:
- Try fetching the discovery endpoint (with a short timeout, e.g. 5s)
- Parse
.instances[.default].mcp_url
- 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)
Summary
The MemoryHub E2E test (
apps/adk-server/tests/e2e/examples/agent-integration/memoryhub/test_memoryhub_recall.py) currently uses theMEMORYHUB_E2E_URLrepo secret, which must be manually updated when the sandbox cluster rotates. MemoryHub now publishes the current MCP URL at a stable discovery endpoint:The E2E test should read this endpoint at startup to resolve the URL, falling back to
MEMORYHUB_E2E_URLif 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_urlfrom the response.Suggested change
In the test fixture that resolves the MemoryHub URL:
.instances[.default].mcp_urlos.environ.get("MEMORYHUB_E2E_URL")if fetch fails or the endpoint is unreachableThis way the test self-heals after cluster rotations without waiting for someone to update the repo secret.
References
planning/kagenti-adk-e2e-cluster-url-stability.md