From 17c59fd719ec29f34bace8e9c33d0c308d5fed13 Mon Sep 17 00:00:00 2001 From: "copilotkit-qa-bot[bot]" Date: Wed, 26 Aug 2026 14:56:06 -0700 Subject: [PATCH] collect Agno persistence regression in CI --- showcase/integrations/agno/src/agents/interrupt_agent.py | 3 +++ showcase/integrations/agno/src/agents/main.py | 2 ++ .../agno/tests/{ => python}/test_agent_persistence.py | 9 ++------- .../integrations/agno/frontend-tool-persistence.mdx | 5 ++++- .../lib/__tests__/agno-frontend-tool-persistence.test.ts | 2 ++ 5 files changed, 13 insertions(+), 8 deletions(-) rename showcase/integrations/agno/tests/{ => python}/test_agent_persistence.py (54%) diff --git a/showcase/integrations/agno/src/agents/interrupt_agent.py b/showcase/integrations/agno/src/agents/interrupt_agent.py index 14e9ccc37b..542020018f 100644 --- a/showcase/integrations/agno/src/agents/interrupt_agent.py +++ b/showcase/integrations/agno/src/agents/interrupt_agent.py @@ -46,6 +46,9 @@ agent = Agent( # the frontend handler, which returns a Promise that only resolves # once the user picks a slot -- equivalent to `interrupt()` in the # LangGraph reference. + # A database is intentionally unnecessary here: this agent has no Agno + # `external_execution` tools, and the custom route forwards the frontend + # tool-result messages directly on the second leg. tools=[], tool_call_limit=5, description="Scheduling assistant for the interrupt-adapted demos.", diff --git a/showcase/integrations/agno/src/agents/main.py b/showcase/integrations/agno/src/agents/main.py index 06070567aa..0da2313dd1 100644 --- a/showcase/integrations/agno/src/agents/main.py +++ b/showcase/integrations/agno/src/agents/main.py @@ -248,6 +248,8 @@ def _create_session_db(): # Keep this import outside the public weather-tool region above. from agno.db.sqlite import SqliteDb + # The production container runs as an unprivileged user with a read-only + # application directory, so its SQLite file belongs in writable /tmp. return SqliteDb(db_file="/tmp/agno.db") diff --git a/showcase/integrations/agno/tests/test_agent_persistence.py b/showcase/integrations/agno/tests/python/test_agent_persistence.py similarity index 54% rename from showcase/integrations/agno/tests/test_agent_persistence.py rename to showcase/integrations/agno/tests/python/test_agent_persistence.py index 9ac00a94d4..787237da48 100644 --- a/showcase/integrations/agno/tests/test_agent_persistence.py +++ b/showcase/integrations/agno/tests/python/test_agent_persistence.py @@ -1,16 +1,11 @@ """Regression coverage for Agno frontend-tool session persistence.""" -import sys from pathlib import Path -PACKAGE_ROOT = Path(__file__).resolve().parent.parent -sys.path.insert(0, str(PACKAGE_ROOT)) -sys.path.insert(0, str(PACKAGE_ROOT / "src")) +from agents.main import agent +from agno.db.sqlite import SqliteDb def test_showcase_agent_has_sqlite_session_storage(): - from agents.main import agent - from agno.db.sqlite import SqliteDb - assert isinstance(agent.db, SqliteDb) assert Path(agent.db.db_file).resolve() == Path("/tmp/agno.db").resolve() diff --git a/showcase/shell-docs/src/content/snippets/integrations/agno/frontend-tool-persistence.mdx b/showcase/shell-docs/src/content/snippets/integrations/agno/frontend-tool-persistence.mdx index 6c16131001..9c6090beff 100644 --- a/showcase/shell-docs/src/content/snippets/integrations/agno/frontend-tool-persistence.mdx +++ b/showcase/shell-docs/src/content/snippets/integrations/agno/frontend-tool-persistence.mdx @@ -8,7 +8,7 @@ pip install sqlalchemy ``` - Use SQLite for local development: + Use a project-relative SQLite file for local development: ```python from agno.agent import Agent @@ -22,6 +22,9 @@ ) ``` + The deployed showcase uses `/tmp/agno.db` because its application directory + is read-only to the runtime user. + For production, use durable shared storage such as `PgDb`. An ephemeral container file cannot resume a run on another instance. diff --git a/showcase/shell-docs/src/lib/__tests__/agno-frontend-tool-persistence.test.ts b/showcase/shell-docs/src/lib/__tests__/agno-frontend-tool-persistence.test.ts index 47240d57d7..da1792eb16 100644 --- a/showcase/shell-docs/src/lib/__tests__/agno-frontend-tool-persistence.test.ts +++ b/showcase/shell-docs/src/lib/__tests__/agno-frontend-tool-persistence.test.ts @@ -43,6 +43,8 @@ test.each(agnoRoutes)("documents Agno session persistence on %s", (route) => { expect(content).toContain("from agno.db.sqlite import SqliteDb"); expect(content).toContain('SqliteDb(db_file="tmp/agno.db")'); expect(content).toContain("db=db"); + expect(content).toContain("/tmp/agno.db"); + expect(content).toContain("read-only to the runtime user"); expect(content).toContain("PgDb"); } });