Skip to content

fix(adk-middleware): use O(1) lookup in /agents/state when use_thread_id_as_session_id is enabled - #1383

Merged
contextablemark merged 2 commits into
mainfrom
claude/fix-ag-ui-1243-R3WiX
Mar 26, 2026
Merged

fix(adk-middleware): use O(1) lookup in /agents/state when use_thread_id_as_session_id is enabled#1383
contextablemark merged 2 commits into
mainfrom
claude/fix-ag-ui-1243-R3WiX

Conversation

@contextablemark

@contextablemark contextablemark commented Mar 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • The /agents/state endpoint always used the O(n) _find_session_by_thread_id scan on cache miss, even when use_thread_id_as_session_id=True. This adds a direct get_session(session_id=thread_id) O(1) lookup first when the flag is enabled, falling back to the scan only for legacy sessions.
  • Uses getattr(..., False) is True for the flag check to safely handle mock-based test fixtures.

Test plan

  • 2 new endpoint-level tests added (TestAgentsStateEndpointWithDirectLookup)
  • All 680 non-Vertex tests pass (1 skipped — Vertex live tests)
  • Existing TestAgentsStateEndpoint mock tests unaffected

More Fixes for #1243

🤖 Generated with Claude Code

claude and others added 2 commits March 26, 2026 20:33
…_id_as_session_id is enabled

The /agents/state endpoint always used the O(n) _find_session_by_thread_id
scan path on cache miss, even when use_thread_id_as_session_id=True. This
adds a direct get_session(session_id=thread_id) lookup first when the flag
is enabled, falling back to the scan only for legacy sessions.

Fixes #1243

https://claude.ai/code/session_01A1RL4QvwUhWNHocM7H4xkH
…ad_id_as_session_id

Use `getattr(..., False) is True` instead of direct attribute access so
that MagicMock-based test fixtures (which return truthy mocks for any
attribute) correctly fall through to the scan path.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Mar 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
ag-ui-dojo Ready Ready Preview, Comment Mar 26, 2026 11:19pm

Request Review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Auto-approved: PR author contextablemark has CODEOWNERS access to all changed files (excluding root rule)

@github-actions

Copy link
Copy Markdown
Contributor

Python Preview Packages

Version 0.0.0.dev1774567081 published to TestPyPI.

Warning: These packages are built from contributor code that may not yet have been vetted for correctness or security. Install at your own risk and do not use in production.

Install with uv

Add the TestPyPI index to your pyproject.toml:

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
explicit = true

Then install the packages you need:

# Core SDK
uv add 'ag-ui-protocol==0.0.0.dev1774567081' --index testpypi

# Integrations (each already depends on the matching ag-ui-protocol preview)
uv add 'ag-ui-langgraph==0.0.0.dev1774567081' --index testpypi
uv add 'ag-ui-crewai==0.0.0.dev1774567081' --index testpypi
# NOTE: ag-ui-agent-spec depends on pyagentspec (git-only, not on PyPI).
# You will need to install pyagentspec separately from its git repo.
uv add 'ag-ui-agent-spec==0.0.0.dev1774567081' --index testpypi
uv add 'ag_ui_adk==0.0.0.dev1774567081' --index testpypi
uv add 'ag_ui_strands==0.0.0.dev1774567081' --index testpypi

Install with pip

pip install \
  --index-url https://test.pypi.org/simple/ \
  --extra-index-url https://pypi.org/simple/ \
  ag-ui-protocol==0.0.0.dev1774567081

Use --extra-index-url https://pypi.org/simple/ so pip can resolve
transitive dependencies (pydantic, fastapi, etc.) from real PyPI.


Commit: 829b0d9

@pkg-pr-new

pkg-pr-new Bot commented Mar 26, 2026

Copy link
Copy Markdown

Open in StackBlitz

@ag-ui/a2a-middleware

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/a2a-middleware@1383

@ag-ui/a2ui-middleware

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/a2ui-middleware@1383

@ag-ui/mcp-apps-middleware

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/mcp-apps-middleware@1383

@ag-ui/middleware-starter

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/middleware-starter@1383

@ag-ui/a2a

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/a2a@1383

@ag-ui/adk

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/adk@1383

@ag-ui/ag2

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/ag2@1383

@ag-ui/aws-strands

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/aws-strands@1383

@ag-ui/agno

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/agno@1383

@ag-ui/claude-agent-sdk

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/claude-agent-sdk@1383

@ag-ui/crewai

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/crewai@1383

@ag-ui/langchain

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/langchain@1383

@ag-ui/langgraph

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/langgraph@1383

@ag-ui/langroid

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/langroid@1383

@ag-ui/llamaindex

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/llamaindex@1383

@ag-ui/mastra

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/mastra@1383

@ag-ui/pydantic-ai

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/pydantic-ai@1383

@ag-ui/server-starter

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/server-starter@1383

@ag-ui/server-starter-all-features

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/server-starter-all-features@1383

@ag-ui/vercel-ai-sdk

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/vercel-ai-sdk@1383

create-ag-ui-app

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/create-ag-ui-app@1383

@ag-ui/client

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/client@1383

@ag-ui/core

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/core@1383

@ag-ui/encoder

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/encoder@1383

@ag-ui/proto

pnpm add https://pkg.pr.new/ag-ui-protocol/ag-ui/@ag-ui/proto@1383

commit: a52ce07

@contextablemark
contextablemark merged commit de87480 into main Mar 26, 2026
29 checks passed
@contextablemark
contextablemark deleted the claude/fix-ag-ui-1243-R3WiX branch March 26, 2026 23:31
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