fix: fixes to step feedback listing (#3080)

This commit is contained in:
Sarah Wooders
2025-06-27 16:31:23 -07:00
committed by GitHub
parent fbe5e7cdd1
commit d1a0dae9fb
3 changed files with 7 additions and 1 deletions

View File

@@ -243,6 +243,7 @@ class SqlalchemyBase(CommonSqlalchemyMetaMixins, Base):
join_conditions=join_conditions,
identifier_keys=identifier_keys,
identity_id=identity_id,
has_feedback=has_feedback,
**kwargs,
)
if query_options:

View File

@@ -531,6 +531,10 @@ def enforce_types(func):
elif origin is list and isinstance(value, list): # Handle List[T]
element_type = args[0] if args else None
return all(isinstance(v, element_type) for v in value) if element_type else True
elif origin is not None and (
str(origin).endswith("Literal") or getattr(origin, "_name", None) == "Literal"
): # Handle Literal types
return value in args
elif origin: # Handle other generics like Dict, Tuple, etc.
return isinstance(value, origin)
else: # Handle non-generic types

View File

@@ -87,6 +87,7 @@ from letta.server.db import db_registry
from letta.server.server import SyncServer
from letta.services.block_manager import BlockManager
from letta.services.helpers.agent_manager_helper import calculate_base_tools
from letta.services.step_manager import FeedbackType
from letta.settings import tool_settings
from tests.helpers.utils import comprehensive_agent_checks, validate_context_window_overview
from tests.utils import random_string
@@ -6186,7 +6187,7 @@ async def test_job_usage_stats_add_multiple(server: SyncServer, sarah_agent, def
step_manager = server.step_manager
# Add feedback to first step
await step_manager.add_feedback_async(step_id=steps[0].id, feedback="positive", actor=default_user)
await step_manager.add_feedback_async(step_id=steps[0].id, feedback=FeedbackType.POSITIVE, actor=default_user)
# Test has_feedback filtering
steps_with_feedback = await step_manager.list_steps_async(agent_id=sarah_agent.id, has_feedback=True, actor=default_user)